Страница 1 из 1

SMS из GSM к SIP

Добавлено: 12 авг 2014, 17:15
bodun
Здравствуйте!

Прошу помощи в настройке обмена СМС.

Конфигурация следующая:
Asterisk 11.11.0 на Centos 6.5
Прикручен модем Huawei E160G

Сейчас пытаюсь сделать шлюз GSM SIP. На астериске заведен единственный пользователь test. Хочется получить простое решение - звонки на модем передаются этому пользователю, звонки от пользователя идут через модем. Этого же хотелось бы получить и с СМС сообщениями.
Звонки из GSM в SIP и обратно работают нормально, проблема в СМС. В найденных мануалах показан вариант сохранения сообщений в файл:

Код: Выделить всё

[dongle-incoming-sms]
exten => sms,1,Noop(Incoming SMS from ${CALLERID(num)} ${BASE64_DECODE(${SMS_BASE64})})
exten => sms,n,System(echo '${STRFTIME(${EPOCH},,%Y-%m-%d %H:%M:%S)} — ${DONGLENAME} — ${CALLERID(num)}: ${BASE64_DECODE(${SMS_BASE64})}' >> /var/log/asterisk/sms.txt)
exten => sms,n,Hangup()
Тут все работает, но это не то, что мне нужно. Пробую модернизировать этот контекст для своих нужд:

Код: Выделить всё

[dongle-incoming-sms]
exten => sms,1,Set(MESSAGE(body)=${BASE64_DECODE(${SMS_BASE64})})
exten => sms,n,Set(MESSAGE(from)=${CALLERID(num)})
exten => sms,n,Verbose(1,${MESSAGE(from)})
exten => sms,n,MessageSend(sip:test)
exten => sms,n,Hangup()
При таком варианте сообщения приходят на клиент, но отправитель указан как asterisk@XXX.XXX.XXX.XXX
Пробовал указать

Код: Выделить всё

exten => sms,n,MessageSend(sip:test,${MESSAGE(from)})
Так сообщение приходит от имени +XXXXXXXXXXXX (asterisk@XXX.XXX.XXX.XXX).
Оба эти варианта не очень желательны, так как если я пытаюсь ответить на такое сообщение, то оно адресуется именно на asterisk@XXX.XXX.XXX.XXX. Очень хотелось бы, чтоб сообщение было адресовано или на +XXXXXXXXXXXX, или на +XXXXXXXXXXXX@XXX.XXX.XXX.XXX, тогда при ответе на него я смогу выцепить номер адресата и правильно отослать СМСку.

Бьюсь с этим уже пару дней, ничего на ум не приходит. Возможно я вообще неправильно формирую сообщение для пересылки, но никак не могу найти корректный вариант. Буду очень благодарен за помощь или за направление поиска.