]> git.ipfire.org Git - thirdparty/freeswitch.git/commitdiff
gsmopen: added an excerpt from gsmlib FAQ on how to sending UCS2 when characters...
authorGiovanni Maruzzelli <gmaruzz@gmail.com>
Wed, 18 Apr 2012 13:35:53 +0000 (15:35 +0200)
committerGiovanni Maruzzelli <gmaruzz@gmail.com>
Wed, 18 Apr 2012 13:35:53 +0000 (15:35 +0200)
src/mod/endpoints/mod_gsmopen/gsmopen_protocol.cpp

index 1c656fdf77097ea9916f935eeacb0c82492ac28d..36fb81b3c4692c4d55a24b29467261f56a4cb30b 100644 (file)
@@ -2706,7 +2706,8 @@ int gsmopen_sendsms(private_t *tech_pvt, char *dest, char *text)
                        SMSMessageRef smsMessage;
 
                        memset(mesg_test, '\0', sizeof(mesg_test));
-                       sprintf(mesg_test,":) ciao belè новости לק ראת ﺎﻠﺠﻤﻋﺓ 人大aèéàòçù"); //let's test the beauty of utf8
+                       //sprintf(mesg_test,":) ciao belè новости לק ראת ﺎﻠﺠﻤﻋﺓ 人大aèéàòçù"); //let's test the beauty of utf8
+                       sprintf(mesg_test,":) ciao belè èéàòìù"); 
                        //text=mesg_test;
 
                        utf8_to_iso_8859_1(tech_pvt, text, strlen(text), smscommand, sizeof(smscommand));
@@ -2718,6 +2719,31 @@ int gsmopen_sendsms(private_t *tech_pvt, char *dest, char *text)
                        sprintf(smscommand, "AT+CMGS=%d", pdulenght);   
 
 #ifdef NOTDEF
+
+*** 9. How to support unicode?
+
+You need 6 steps:
+
+1. set datacodingschema to DCS_SIXTEEN_BIT_ALPHABET
+
+2. set your locale correctly, for example, my locale, china.
+    setlocale(LC_ALL, "chs");
+
+3. translate MBCS(multiple byte character set) string to unicode string.
+    wchar_t wstr[ 1000 ];
+    memset(wstr, 0, 2000);
+    mbstowcs(wstr, data.c_str(), data.length());
+
+4. get unicode string length.
+    int wcs_len = wcslen(wstr);
+
+5. change unicode string to net order.
+    for (int i = 0; i < wcs_len; i++)
+        wstr[ i ] = htons(wstr[ i ]);
+
+6. put unicode string into pdu.
+                                                       
+
                                                char content2[1000];
                                                SMSMessageRef sms;
                                                //MessageType messagetype;