я все входящие sms отправляю в джаббер с помощью перл скрипта. только когда в сообщении встречаются спец. символы, текст сообщения обрывается. Подскажите, пожалуйста, как экранировать сообщение?
Текст входящего сообщения:
testing ' test ` hello
***
Posluga MAYACHOK! Dzvonit 477*78*
Строка в плане:
exten => sms,n,System(perl /etc/inform.pl login pass recepient "${DATACARD} ${CALLERID(num)}: ${SMS}")
Вывод в консоли:
Executing [sms@gsm-incoming:1] Verbose("Local/sms@gsm-incoming-627a;1", "Incoming SMS from 777 testing ' test hello") in new stack
Incoming SMS from 777 testing ' test hello
Executing [sms@gsm-incoming:2] System("Local/sms@gsm-incoming-627a;1", "perl /etc/inform.pl login pass recepient " 777: testing ' test hello"") in new stack
Приходит в джаббер
testing ' test hello
SMS and USSD truncated to first \n symbol
For example you send “Hello!\nHow are you?” but asterisk show only “Hello!” The reason for this hidden in asterisk variable subsitution, and can be solved by use BASE64_DECODE function:
${BASE64_DECODE(${SMS_BASE64})}
${BASE64_DECODE(${USSD_BASE64})}
Боюсь, это не спецсимвол, а просто перевод строки. Делайте через \n\r
Задан: 2011-10-05 12:33:24 +0400
Просмотрен: 1,356 раз
Обновлен: Oct 06 '11
Проект компании "АТС Дизайн"
Asterisk® и Digium® являются зарегистрированными торговыми марками компании
Digium, Inc., США.
IP АТС Asterisk распространяется под лицензией
GNU GPL.