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

Asterisk Call-ID

Добавлено: 10 мар 2017, 12:37
bavvitdaba
Коллеги, приветствую.
Пусть у нас есть транк ssw5<->asterisk.
Вызов приходит с ssw5, asterisk принимает вызов, производит определенную манипуляцию с SIP-заголовками (ssw5 сам этого делать не умеет, увы), после чего возвращает вызов обратно на ssw5.
В dp это выглядит примерно так:

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

[from-ssw5]
exten = 123,1,SIPAddHeader(...)
same = n, ...
...
same = n,Dial(SIP/ssw5/{EXTEN})
Вопрос тут вот в чем: на ssw5 хочется отправить вызов с тем же значение Call-ID, которое asterisk получил при входящем вызове.
Asterisk генерит новый Call-ID когда делает Dial.
Если перед Dial поставить что-то типа

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

SipAddHeader(Call-ID: blablabla)
То у нас просто появится еще один заголовок Call-ID, но этот вариант не устраивает.

Есть идеи?

Re: Asterisk Call-ID

Добавлено: 10 мар 2017, 13:12
ded
Asterisk - это не прокси.
Изучите тему чуть глубже. Для сквозных манипуляций с SIP headers не нужно ставить Астериск. Такие вещи делают софт-свичи 4-го класса (Астериск - 5-го).
Вопрос "а какие это софт-свичи 4-го класса?" следует задать в Гугл. Самопознание приветствуется.

Re: Asterisk Call-ID

Добавлено: 10 мар 2017, 13:26
bavvitdaba
ded,
Я понимаю, что asterisk - это не прокси.
Как и понимаю, что chan_sip генерит свой Сall-ID для каждого вызова.
Суть вопроса заключалась именно в том, есть ли какие-нибудь способы это обойти.
Я уже использую подобную схему, где вместо asterisk стоит opensips.
Но интересует именно реализация на asterisk.

Re: Asterisk Call-ID

Добавлено: 10 мар 2017, 13:54
ded
Обойти можно. Переписать код chan_pjsip
Издержки: если Астериск меняет на ходу Call-ID, то он перестаёт в них разбираться. Ибо это огика перепиливания вутки, на которой сидим.

Re: Asterisk Call-ID

Добавлено: 10 мар 2017, 14:17
bavvitdaba
ded,
согласен с вами.
Радикальный метод в виде модификаций chan_sip/chan_pjsip не рассматривается на текущем этапе (хотя мысли были).
Спасибо.