|
|
Help Me Humpa PHP and MMS Server Help
|
| View previous topic :: View next topic |
| Author |
Message |
dacool25
Joined: 29 Apr 2007 Posts: 60
|
Posted: Sat May 05, 2007 3:13 pm Post subject: |
|
|
Well, now i'm starting to doubt the code. When i try to send to a cingular suffix, i get no kickbacks, not even the other sprint or verizon suffixes kick it back. I'm just confused. Any ideas? Here is my current config.php
| Code: |
I(Humpa) edited this ... in case there was any sensitive info. It all looked good.
|
and here is my send.php
| Code: |
<?php
include("config.php");
global $admin_email, $your_name, $HTTP_RAW_POST_DATA,$mms_data;
include("mmsdecoder.php");
$typeToExtension = array("image/jpeg" => ".jpg",
"image/png" => ".png",
"image/wbmp" => ".wbmp",
"image/gif" => ".gif",
//IMAGE_GIF => ".gif",
// IMAGE_JPEG => ".jpg",
//IMAGE_PNG => ".png",
//IMAGE_WBMP => ".wbmp",
//TEXT_PLAIN => ".txt",
"text/plain" => ".txt",
"text/html" => ".txt",
"application/smil" => ".smil",
"application/zip" => ".zip",
"video/mpeg" => ".mpg",
"video/avi" => ".avi",
"video/mpeg4" => ".mp4",
"video/3gpp2" => ".3g2",
"video/3gpp" => ".3gp",
"video/msvideo" => ".avi",
"video/vnd.rn-realvideo" => ".rv",
"video/x-mpg" => ".mpa",
"video/x-ms-asf" => ".asf",
"video/x-ms-asx" => ".asx",
"video/x-ms-wm" => ".wm",
"video/x-ms-wmv" => ".wmv",
"video/x-ms-wmx" => ".wmx",
"audio/amr" => ".amr",
"x-music/x-midi" => ".mid",
"audio/midi" => ".mid",
"audio/mid" => ".mid",
"audio/mpegurl" => ".mpu",
"audio/mpeg" => ".mp3",
"audio/mp3" => ".mp3",
"audio/x-wav" => ".wav",
"audio/x-aiff" => ".aiff",
"audio/x-pn-aiff" => ".aif",
"audio/x-ms-wma" => ".wma",
"audio/x-pn-au" => ".au",
"audio/x-ms-wax" => ".wax",
"audio/vnd.rn-realaudio" => ".ra",
"audio/m4a" => ".m4a",
"text/x-imelody" => ".imy" );
/*
$fd = fopen("http://www.humpa.com/humpa_mms/test_humpa", "r");
$mms_data = "";
while (!feof($fd)) {
$mms_data .= fread($fd, 1024);
}
fclose($fd);
*/
if($mms_data != "") {
$HTTP_RAW_POST_DATA = $mms_data;
}
if ($HTTP_RAW_POST_DATA != "") {
// check if the raw post data shall be saved
// save RAW data
$time_now = time();
//$pic_time = strftime("%Y%m%d%H%M%S",$time_now);
$pic_time = date("YmdHis",$time_now);
$data = $HTTP_RAW_POST_DATA;
$content = "";
// Create the decoder and let it parse the data
$dec = new MMSDecoder( $data );
//$dec->parse();
$dec->parse();
//$to_addy = $dec->TO;
//$mms_bcc = $dec->BCC;
//$mms_cc = $dec->CC;
global $mms_to_array,$mms_cc_array,$mms_bcc_array,$mms_to_addy_array,$mms_cc_addy_array,$mms_bcc_addy_array,$to_addy,$content;
if(is_array($mms_to_array)) {
$i = 0;
while(list($mms_to_key,$mms_to_value) = each($mms_to_array)) {
$mms_to_value = eregi_replace("/TYPE=PLMN","",$mms_to_value);
if(eregi("savethis",$mms_to_value)) {
$save_forwarded_mms = "yes";
$mms_to_value = "";
$mms_to_addy_array[] = $mms_to_value;
$content .= "mms_to_value is $mms_to_value<br>";
}elseif(eregi("pix\.vtext\.com",$mms_to_value)) {
$mms_to_value = "";
$mms_to_addy_array[] = $mms_to_value;
$to_addy = $mms_to_value;
$content .= "mms_to_value is $mms_to_value<br>";
}elseif(eregi("mml\.alltel\.com",$mms_to_value)) {
$mms_to_value = "";
$mms_to_addy_array[] = $mms_to_value;
$content .= "mms_to_value is $mms_to_value<br>";
}elseif(eregi("^[0-9]{10}$",$mms_to_value)) {
if($forward_10digit_number_to_email_address == "yes") {
$mms_to_value = "$mms_to_value$ten_digit_number_email_suffix";
if($mms_to_value != "") {
if($i==0) {
$to_addy = $mms_to_value;
}
$mms_to_addy_array[] = $mms_to_value;
$content .= "mms_to_value is $mms_to_value<br>";
}
}
}else {
if($mms_to_value != "") {
if($i==0) {
$to_addy = $mms_to_value;
}
$mms_to_addy_array[] = $mms_to_value;
$content .= "mms_to_value is $mms_to_value<br>";
}
}
$i++;
}
}
if(is_array($mms_cc_array)) {
while(list($mms_cc_key,$mms_cc_value) = each($mms_cc_array)) {
if($forward_10digit_number_to_email_address == "yes") {
$phonenumber = $mms_to_value;
$mms_to_value = "$mms_to_value$ten_digit_number_email_suffix";
if($mms_to_value != "") {
if($i==0) {
$to_addy = $mms_to_value;
}
$mms_to_addy_array[] = $mms_to_value;
while(list($key, $value) = each($email_suffix_array)) {
$mms_to_addy_array[] = "$phonenumber$value";
}
reset($mms_to_addy_array);
$content .= "mms_to_value is $mms_to_value<br>";
}
}else {
$mms_cc_addy_array[] =$mms_cc_value;
$content .= "mms_cc_value is $mms_cc_value<br>";
}
}
}
if(is_array($mms_bcc_array)) {
while(list($mms_bcc_key,$mms_bcc_value) = each($mms_bcc_array)) {
if(eregi("^[0-9]{10}$",$mms_bcc_value)) {
if($forward_10digit_number_to_email_address == "yes") {
$mms_bcc_value = "$mms_bcc_value$ten_digit_number_email_suffix";
$mms_bcc_addy_array[] = $mms_bcc_value;
$content .= "mms_bcc_value is $mms_bcc_value<br>";
}
}else {
$mms_bcc_addy_array[] = $mms_bcc_value;
$content .= "mms_bcc_value is $mms_bcc_value<br>";
}
}
}
$content .= "<br>to addres is $to_addy<br>";
//$content .= "bcc is $mms_bcc<br>cc is $mms_cc<br><br>";
$send_as_email_only = FALSE;
$send_as_email = FALSE;
if(ereg("^.+@.+\\..+$", $to_addy)) {
$send_as_email = TRUE;
if($save_forwarded_mms == "no") {
$send_as_email_only = TRUE;
}
}
$subject = $dec->SUBJECT;
if($subject != "" AND !$send_as_email_only) {
$subject = trim($subject);
$subject = strip_tags($subject);
$filename = "$path_to_media$pic_time.txt";
$file = fopen($filename, 'wb');
fwrite($file, $subject);
fclose($file);
$content .= "subject is $subject<br><br>\n";
}
$parts = $dec->PARTS;
$num_parts = count($parts);
$text_count = 0;
$pic_count = 0;
$audio_count = 0;
$video_count = 0;
$media_count = 0;
$media = array();
$media_type = array();
$media_ext = array();
$pic_length = array();
$content .= "<b?Number of Parts is $num_parts</b><br><br>\n";
for ( $i = 0; $i < $num_parts; $i++ ) {
$p = $parts[$i];
$contentType = $p->CONTENTTYPE;
$contentTypeToString = $contentType;
//$contentTypeToString = contentTypeToString($contentType);
$mms_ext = getExtension( $contentType );
$content .= "<br>$i. $contentType is <b>contentType</b><br>\n";
$content .= "$i. $contentTypeToString is <b>contentTypeToString</b><br>\n";
$content .= "$i. $mms_ext is <b>mms_ext</b><br>\n";
if ($contentTypeToString == "text/plain" OR $contentTypeToString == "text/html" ) {
$text = $p->DATA;
$text = strip_tags( $text );
if($text_count == 0 AND $subject == "") {
$filename = "$path_to_media$pic_time$mms_ext";
}else {
$filename = "$path_to_media".$pic_time."_".$i."$mms_ext";
}
if(!$send_as_email_only) {
$file = fopen($filename, 'wb');
fwrite($file, $text);
fclose($file);
}
$mms_text = $text;
$content .= "<br>$i. media_type is $contentTypeToString<br>Text is <b>$text</b><br>\n";
$media[$media_count] = "$text";
$media_type[$media_count] = "$contentTypeToString";
$media_ext[$media_count] = $mms_ext;
$media_count++;
$text_count++;
}elseif ( eregi("image/", $contentTypeToString)) {
$media[$media_count]= $p->DATA;
$pic_length[$pic_count] = strlen($media[$media_count]);
if($pic_count == 0) {
$filename = "$path_to_media$pic_time$mms_ext";
}else {
$filename = "$path_to_media".$pic_time."_".$i."$mms_ext";
}
if(!$send_as_email_only) {
$file = fopen($filename, 'wb');
fwrite($file, "$media[$media_count]");
fclose($file);
}
$content .= "<br>$i. size: $pic_length[$pic_count]<br><img src=\"$filename\"><br>\n";
$media_type[$media_count] = "$contentTypeToString";
$media_ext[$media_count] = $mms_ext;
$media_count++;
$pic_count++;
}elseif ( eregi("audio/",$contentTypeToString) OR eregi("x-music/",$contentTypeToString) ) {
$media[$media_count] = $p->DATA;
if(!$send_as_email_only) {
$filename = "$path_to_media".$pic_time."_".$i."$mms_ext";
$file = fopen($filename, 'wb');
fwrite($file, "$media[$media_count]");
fclose($file);
}
$media_type[$media_count] = "$contentTypeToString";
$media_ext[$media_count] = $mms_ext;
$media_count++;
$content .= "<br>$i. <a href=\"$filename\">Audio file</a><br>\n";
$audio_count++;
}elseif ( eregi("video/",$contentTypeToString) ) {
$media[$media_count] = $p->DATA;
if(!$send_as_email_only) {
$filename = "$path_to_media".$pic_time."_".$i."$mms_ext";
$file = fopen($filename, 'wb');
fwrite($file, "$media[$media_count]");
fclose($file);
}
//$media[$media_count] = "$mms_video_data[$video_count]";
$media_type[$media_count] = "$contentTypeToString";
$media_ext[$media_count] = $mms_ext;
$media_count++;
$content .= "<br>$i. <a href=\"$filename\">Video file</a><br>\n";
$video_count++;
}
}
if($send_as_email) {
mms_forward($to_addy,$subject,$media,$media_type,$media_ext,$mms_cc_addy_array,$mms_to_addy_array);
if(is_array($mms_bcc_addy_array)) {
while(list($mms_bcc_key,$mms_bcc_value) = each($mms_bcc_addy_array)) {
mms_forward($mms_bcc_value,$subject,$media,$media_type,$media_ext,"","");
}
}
}
if($num_parts < 1) {
$filename = "$path_to_media/unknown_".$pic_time;
$file = fopen($filename, 'wb');
fwrite($file, $data);
fclose($file);
}
//echo "$content";
writeBackSendConf($dec);
}else {
echo "Thanks for the fish!<br>\n";
}
function mms_forward($mms_to_addy,$mms_subject,$media,$media_type,$media_ext,$mms_cc_addy_array_function,$mms_to_addy_array_function) {
require_once("class.phpmailer.php");
global $admin_email, $your_name,$use_pop3_mail,$pop3_smtp_host,$pop3_username,$pop3_password,$pop3_from_email,$pop3_from_name;
global $content;
// Plain text body (for mail clients that cannot read HTML)
//$text_body = "This is a phonecam image from $your_name.\n\n";
$content_mail = "";
if($mms_subject == "") {
//$mms_subject = "This is a forwarded phone cam image, thanks to $your_name";
}
$mail = new phpmailer();
if($use_pop3_mail == "yes") {
$mail->IsSMTP();
$mail->Host = "$pop3_smtp_host";
$mail->SMTPAuth = true;
$mail->Username = "$pop3_username";
$mail->Password = "$pop3_password";
$mail->From = "$pop3_from_email";
$mail->FromName = "$pop3_from_name";
$mail->Sender = "$pop3_from_email";
}else {
$mail->From = "$admin_email";
$mail->FromName = "$your_name";
$mail->Sender = "$admin_email";
}
$mail->Subject = $mms_subject;
if(is_array($mms_to_addy_array_function)) {
while(list($mms_to_key,$mms_to_value) = each($mms_to_addy_array_function)) {
$mail->AddAddress($mms_to_value);
//$text_body .= "mms_to_value is $mms_to_value ";
$content .= "1. mms_to_value is $mms_to_value<br>";
}
}else {
$mail->AddAddress($mms_to_addy);
$content .= "2. mms_to_addy is $mms_to_addy<br>";
}
if(is_array($mms_cc_addy_array_function)) {
while(list($mms_to_key,$mms_to_value) = each($mms_cc_addy_array_function)) {
$mail->AddAddress($mms_to_value);
$content .= "3. mms_to_value is $mms_to_value<br>";
}
}
//$mail->AddAddress($mms_to_value,$mms_to_name);
$i = 0;
$total_media = count($media_type);
while($i < $total_media) {
$random_num = rand(1000, 9999);
if(eregi("text/plain", $media_type[$i])) {
$text_body .= "$media[$i] ";
$body .= "<br><b>$media[$i]</b><br>";
$content_mail .= "text/plain media_type is $media_type[$i]<br>media[$i] is $media[$i]<br>body is $body<br>\n";
}elseif(eregi("text/html", $media_type[$i])) {
$content_mail .= "text/html media_type is $media_type[$i]<br>media[$i] is $media[$i]<br>\n";
$text_body .= "$media[$i] ";
$body .= "<br><b>$media[$i]</b><br>";
}else {
$mail->AddStringAttachment($media[$i], "humpa_phonecam_$random_num$media_ext[$i]", "base64", "$media_type[$i]");
}
$i++;
}
$mail->Body = $text_body;
//$mail->AltBody = $text_body;
$mail->AddReplyTo($admin_email,$your_name);
if(!$mail->Send()) {
$humpa_subject = "Error forwarding MMS to $mms_to_addy";
$notify_message = "Error forwarding MMS to $mms_to_addy\n\nSubject: $mms_subject\nmms_text: $mms_text\n\nMailer Error: " . $mail->ErrorInfo;
mail("$admin_email", $humpa_subject, $notify_message);
}
// Clear all addresses and attachments for next loop
$mail->ClearAddresses();
$mail->ClearAttachments();
}
function writeBackSendConf($dec) {
$reply = array();
$i = 0;
$reply[0] = 0x8c; /* X-Mms-Message-Type */
$reply[1] = 0x81; /* = m-send-conf */
$reply[2] = 0x98; /* X-Mms-Transaction-ID */
for ( $i = 3; $i < strlen($dec->TRANSACTIONID) + 3; $i++ )
$reply[$i] = ord($dec->TRANSACTIONID{$i-3});
$reply[$i++] = 0x00; /* Terminate string */
$reply[$i++] = 0x8D; /* X-Mms-Version */
$reply[$i++] = 0x90; /* = 1.0 */
$reply[$i++] = 0x92; /* X-Mms-Response-Status */
$reply[$i++] = 0x80; /* = OK */
$reply[$i++] = 0x93; //? not sure
$reply[$i++] = 0x1B; //? not sure
$reply[$i++] = 0x84; //? not sure
$reply[$i++] = 0x4D; //M
$reply[$i++] = 0x73; //s
$reply[$i++] = 0x67; //g
$reply[$i++] = 0x20; // space
$reply[$i++] = 0x72; //r
$reply[$i++] = 0x65; //e
$reply[$i++] = 0x63; //c
$reply[$i++] = 0x65; //e
$reply[$i++] = 0x69; //i
$reply[$i++] = 0x76; //v
$reply[$i++] = 0x65; //e
$reply[$i++] = 0x64; //d
$reply[$i++] = 0x20; //space
$reply[$i++] = 0x73; //s
$reply[$i++] = 0x75; //u
$reply[$i++] = 0x63; //c
$reply[$i++] = 0x63; //c
$reply[$i++] = 0x65; //e
$reply[$i++] = 0x73; //s
$reply[$i++] = 0x73; //s
$reply[$i++] = 0x66; //f
$reply[$i++] = 0x75; //u
$reply[$i++] = 0x6C; //l
$reply[$i++] = 0x6C; //l
$reply[$i++] = 0x79; //y
$reply[$i++] = 0x00; // Terminate string
$reply[$i++] = 0x8B; // ?not sure what this is
$reply[$i++] = 0x53; // S SMILGW is the station id (this doesnt matter, and can be something else?)
$reply[$i++] = 0x4D; // M
$reply[$i++] = 0x49; // I
$reply[$i++] = 0x4C; // L
$reply[$i++] = 0x47; // G
$reply[$i++] = 0x57; // W
$reply[$i++] = 0x00;
$reply_length = $i;
header("Content-Type: application/vnd.wap.mms-message");
header("Content-Length: $reply_length");
for ( $j = 0; $j < $i; $j++ )
print(chr($reply[$j]));
}
function toString( $data )
{
for ( $i = 0; $i < sizeof( $data ); $i++ )
$res .= chr( $data[$i] );
return $res;
}
function extractText($dec)
{
$parts = $dec->parts;
for ( $i = 0; $i < sizeof( $parts ); $i++ )
{
$p = $parts[$i];
if ( $p->contentType == TEXT_PLAIN )
{
$text = toString( $p->data );
$text = textDecode( $text );
$text = strip_tags( $text );
return $text;
}
}
return "";
}
function textDecode( $text )
{
// Nokia sends text in UTF-16 encoding.
// This is a quick, incomplete fix for the examples I have seen
if ( ord( $text{0} ) == 0xff &&
ord( $text{1} ) == 0xfe )
{
// take every second character
for ( $i = 2; $i < strlen( $text ); $i += 2 )
$res .= $text{$i};
return $res;
}
return $text;
}
function getExtension( $contentType )
{
global $typeToExtension;
if ( array_key_exists( $contentType, $typeToExtension ) )
return $typeToExtension[$contentType];
return ".bin";
}
?>
|
|
|
| Back to top |
|
 |
Humpa Site Admin

Joined: 06 Nov 2005 Posts: 10258
|
Posted: Sat May 05, 2007 3:36 pm Post subject: |
|
|
| dacool25 wrote: |
I've found the correct one (or at least i think) it is @mms.mycingular.com, ,but i cannot get it to work. But using this suffix, i do not get a kicked back email.
but now i cannot get messages from other people. On a cingular phone when i try to send myself a pix message it says unable to send and does not work. I know that your pic server does not interfer with incoming messages, and i've changed back all of my settings to how they were before this. Still nothing what could of happened. |
You seem to be taking the long way around as far as troubleshooting.
From your email program (outlook? gmail?) sent an email to phonenumber@vzwpix.com ... also try a text message to phonenumber@vtext.com |
|
| Back to top |
|
 |
Humpa Site Admin

Joined: 06 Nov 2005 Posts: 10258
|
Posted: Sat May 05, 2007 3:45 pm Post subject: |
|
|
You have an error in your send.php.
For one thing, you put the code in the mms_cc_array "if" statement, and you forgot a line anyway (the $phonenumber = line).
But you made me realize that we should put the code in the cc and bcc "if" statements as well - so as to cover all possibilities of how you and your phone add "To" addresses.
Use the send.php file I made for you .. I just fixed it and reuploaded it:
www.humpa.com/downloads/dacool25.zip |
|
| Back to top |
|
 |
dacool25
Joined: 29 Apr 2007 Posts: 60
|
Posted: Sat May 05, 2007 3:46 pm Post subject: |
|
|
| Okay, well i've sent myself a message from another verizon phone, and i get the picture. So i guess that in the u740 when you change the mms gateway, it affects both sending and receiving of messages. So for some reason the cingular address doesn't work. Thats so weird. |
|
| Back to top |
|
 |
Humpa Site Admin

Joined: 06 Nov 2005 Posts: 10258
|
Posted: Sat May 05, 2007 4:04 pm Post subject: |
|
|
| dacool25 wrote: |
| Okay, well i've sent myself a message from another verizon phone, and i get the picture. So i guess that in the u740 when you change the mms gateway, it affects both sending and receiving of messages. So for some reason the cingular address doesn't work. Thats so weird. |
I forgot to mention this, but perhaps cingular phones cannot send mms messages to verizon phones. And if you can't send a message from your outlook account to phonenumber@mms.cingular.com, then perhaps they can't receive emails? I'd check with the cingular forum at HoFo ... I know nothing about cingular.
When you change your mms server settings (just that one setting), you can no longer send a message to yourphonenumber@vzwpix.com (use your Outlook account!)?
Try that for me - because no other phone behaves like that. |
|
| Back to top |
|
 |
dacool25
Joined: 29 Apr 2007 Posts: 60
|
Posted: Sat May 05, 2007 4:07 pm Post subject: |
|
|
| Okay, well i've uploaded the new send.php, but still no luck. I cannot send or receive messages from cingular customers. I'm so confused =( |
|
| Back to top |
|
 |
Humpa Site Admin

Joined: 06 Nov 2005 Posts: 10258
|
Posted: Sat May 05, 2007 4:14 pm Post subject: |
|
|
| dacool25 wrote: |
| Okay, well i've uploaded the new send.php, but still no luck. I cannot send or receive messages from cingular customers. I'm so confused =( |
Try mobilenumber@mobile.mycingular.com ... did you already try that?
And try it from your outlook.
But that won't help a cingular customer send to verizon - they might not be "sharing" mms. Not everyone plays together. Your cingular friend might have to send to yourphonenumber@vzwpix.com |
|
| Back to top |
|
 |
Humpa Site Admin

Joined: 06 Nov 2005 Posts: 10258
|
Posted: Sat May 05, 2007 4:19 pm Post subject: |
|
|
Actually, I just found this post from March of 2007:
Originally Posted by HBKDinobot
Just use e-mail... If you are sending to someone's MMS phone use Their_cingular_number@mms.mycingular.com
So apparently it is @mms.mycingular.com
.... but, again, try it from Outlook |
|
| Back to top |
|
 |
dacool25
Joined: 29 Apr 2007 Posts: 60
|
Posted: Sat May 05, 2007 5:54 pm Post subject: |
|
|
Okay, so i sent one to the cingular email address from my email address and it worked. I finally figured out that it wasn't my phone at all, it was actually the other cingular phone that i was working with. So our dilema is pretty much over, the only thing now is to figure out why it says that the message failed, but i am going to try and put my send.php link in the other two server options for my phone and then i'll write back to see if that worked. Thanks for everything humpa!  |
|
| Back to top |
|
 |
dacool25
Joined: 29 Apr 2007 Posts: 60
|
Posted: Sat May 05, 2007 5:58 pm Post subject: |
|
|
Yeah, that didn't work. I changed both of the other two settings to my send.php file and it still gave me a sending failed. Its okay, i can live with it, but i wonder what is stopping it.
PS - The messages are no longer kicking back, but they are working. Weird? |
|
| Back to top |
|
 |
Humpa Site Admin

Joined: 06 Nov 2005 Posts: 10258
|
Posted: Sat May 05, 2007 6:11 pm Post subject: |
|
|
| dacool25 wrote: |
Yeah, that didn't work. I changed both of the other two settings to my send.php file and it still gave me a sending failed. Its okay, i can live with it, but i wonder what is stopping it.
PS - The messages are no longer kicking back, but they are working. Weird? |
Is that email address you are using for $admin_email working?
If it is, it could because it is bouncing them back to some default email address - like a default email address for the email server that your website is using. |
|
| Back to top |
|
 |
dacool25
Joined: 29 Apr 2007 Posts: 60
|
Posted: Sat May 05, 2007 10:24 pm Post subject: |
|
|
| Nope, i've checked all of the emails on my server but none of the kickbacks are getting sent to them. It's rather odd, and i think that it may have to do something with the send.php file because that was the last thing that we changed and when it stopped working. It's okay though, i suppose that it will just take up more webspace anyways to keep these kickbacks coming to me. Thanks for everything humpa! You're the man. |
|
| Back to top |
|
 |
dacool25
Joined: 29 Apr 2007 Posts: 60
|
Posted: Sun May 06, 2007 11:16 am Post subject: |
|
|
To future readers:
I've summed up everything that we have talked about in this forum on a how to at http://www.brsco.info/forum/viewtopic.php?t=10 Please take the time to register and post your comments and concerns. Also the attached file humpa_mms_edited on the page is the edited one for multiple suffixes.  |
|
| Back to top |
|
 |
|
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum
|
|