SMS из GSM к SIP
Добавлено: 12 авг 2014, 17:15
Здравствуйте!
Прошу помощи в настройке обмена СМС.
Конфигурация следующая:
Asterisk 11.11.0 на Centos 6.5
Прикручен модем Huawei E160G
Сейчас пытаюсь сделать шлюз GSM SIP. На астериске заведен единственный пользователь test. Хочется получить простое решение - звонки на модем передаются этому пользователю, звонки от пользователя идут через модем. Этого же хотелось бы получить и с СМС сообщениями.
Звонки из GSM в SIP и обратно работают нормально, проблема в СМС. В найденных мануалах показан вариант сохранения сообщений в файл:
Тут все работает, но это не то, что мне нужно. Пробую модернизировать этот контекст для своих нужд:
При таком варианте сообщения приходят на клиент, но отправитель указан как asterisk@XXX.XXX.XXX.XXX
Пробовал указать
Так сообщение приходит от имени +XXXXXXXXXXXX (asterisk@XXX.XXX.XXX.XXX).
Оба эти варианта не очень желательны, так как если я пытаюсь ответить на такое сообщение, то оно адресуется именно на asterisk@XXX.XXX.XXX.XXX. Очень хотелось бы, чтоб сообщение было адресовано или на +XXXXXXXXXXXX, или на +XXXXXXXXXXXX@XXX.XXX.XXX.XXX, тогда при ответе на него я смогу выцепить номер адресата и правильно отослать СМСку.
Бьюсь с этим уже пару дней, ничего на ум не приходит. Возможно я вообще неправильно формирую сообщение для пересылки, но никак не могу найти корректный вариант. Буду очень благодарен за помощь или за направление поиска.
Прошу помощи в настройке обмена СМС.
Конфигурация следующая:
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()
Пробовал указать
Код: Выделить всё
exten => sms,n,MessageSend(sip:test,${MESSAGE(from)})
Оба эти варианта не очень желательны, так как если я пытаюсь ответить на такое сообщение, то оно адресуется именно на asterisk@XXX.XXX.XXX.XXX. Очень хотелось бы, чтоб сообщение было адресовано или на +XXXXXXXXXXXX, или на +XXXXXXXXXXXX@XXX.XXX.XXX.XXX, тогда при ответе на него я смогу выцепить номер адресата и правильно отослать СМСку.
Бьюсь с этим уже пару дней, ничего на ум не приходит. Возможно я вообще неправильно формирую сообщение для пересылки, но никак не могу найти корректный вариант. Буду очень благодарен за помощь или за направление поиска.