Send MMS and Email using Arduino GSM Shield

As using the MMS feature of the SIM900 seems to be a problem to many (and certainly took me a few days to implement) I offer the following:

It may be necessary to update the SIM900 firmware to that which supports MMS. If so it won't be enough to simply update the firmware from the SimCom website. It specifically needs to be that which supports MMS; like "1137B03SIM900M64_ST_MMS"

Also, realize that the MMS AT commands are not included in the "AT Command Manual". MMS commands are included in the "SIM900 MSS AT Command Manual."

The following are the AT Commands that worked for me. I program in Basic using BASCOM. The results of that effort can be found at

http://www.mcselec.com/index2.php?option=com_forum&Itemid=59&page=viewforum&f=8

Note the use of CHR (34) is how I deal with imbedded quotation marks.

Print "AT+CMMSINIT"
Print "AT+CMMSCURL="; CHR(34); "mmsc.cingular.com"; CHR(34)
Print "AT+CMMSCID=1"
'my connection is to AT&T in the US. They provide the MMS Gateway as
'"wireless.cingular.com." For the SIM900 the gateway must be a specific
'IP address, Using an online IP and Domain checker I found that the address for
'"wireless.cingular.com" is "066.209.11.32"

Print "AT+CMMSPROTO="; CHR(34); "066.209.11.32" ; ; CHR(34); ",80"
Print "AT+SAPBR=3,1,"; Chr(34); "CONTYPE"; Chr(34); ","; Chr(34); "GPRS"; Chr(34)
Print "AT+SAPBR=3,1,"; Chr(34); "APN"; Chr(34); ","; Chr(34); "wap.cingular"; Chr(34)

'add password and user ID here if required (not required for AT&T MMS)

Print "AT+SAPBR=1,1"
Print "AT+SAPBR=2,1"
Print "AT+CMMSEDIT=1"
Print "AT+CMMSDOWN="; CHR(34); "TEXT"; CHR(34); ",6,5000" 'text of 6 bytes and
Print"3280wa" 'send MMS message to Sim900
Print "AT+CMMSRECP="; CHR(34); phone ; CHR(34) 'add first recipient,
Print "AT+CMMSRECP="; CHR(34); email ; CHR(34) 'add second recipient,
Print "AT+CMMSVIEW"
Print "AT+CMMSSEND" 'send MMS to AT&T
Print "AT+CMMSEDIT=0" 'Exit edit mode and clear MMS buffer
Print "CMMSTERM" 'Exit the MMS function