Как получить значение SIP-заголовка во Freeswitch? - PullRequest
1 голос
/ 07 марта 2019

Мне нужно получить значение заголовка CALLED_DID и выполнить некоторые действия в диалплане, но я не знаю, как.

Я пытался использовать $ {sip_h_CALLED_DID}, но он пуст, потому что не имеет префикса X- перед именем заголовка.

Есть ли другой способ извлечь значение из заголовка SIP?

Пожалуйста, помогите мне, я читал по всему Интернету, но не могу найти ответ.

INVITE sip:gw+zadarma-rbcrm@185.70.135.33:65000;transport=udp;gw=zadarma-rbcrm SIP/2.0
Record-Route: <sip:185.45.152.161;lr=on;ftag=as6a38207b>
Via: SIP/2.0/UDP 185.45.152.161;branch=z9hG4bK26d.6cf33cf5d2cdd6683e8de9503870f397.0
Via: SIP/2.0/UDP 185.45.152.148:5060;rport=5060;branch=z9hG4bK74d97ef6
Max-Forwards: 69
From: "+79630495339" <sip:+79630495339@sip.zadarma.com>;tag=as6a38207b
To: <sip:346127@185.45.152.161>
Contact: <sip:+79630495339@185.45.152.148:5060>
Call-ID: 401671d34e8247a9694c3da87c97fbbb@185.45.152.148:5060
CSeq: 102 INVITE
User-Agent: Zadarma Voip
Date: Thu, 07 Mar 2019 07:38:22 GMT
Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, SUBSCRIBE, NOTIFY, INFO, PUBLISH, MESSAGE
Supported: replaces
CALLED_DID: 73433023519
Content-Type: application/sdp
Content-Length: 415
hostname: sipbalancer-1
cc_num: 346127
cc_counter: 1

Ответы [ 2 ]

1 голос
/ 17 марта 2019

Значения Sip не могут быть легко извлечены.Префикс заголовка с X-.Все остальное недопустимо.

Вы можете перекомпилировать mod_sofia - добавить дополнительный читатель заголовка:

https://freeswitch.org/stash/projects/FS/repos/freeswitch/browse/src/mod/endpoints/mod_sofia/sofia.c Пример строки 11297.

Добавить это:

} else if (!strcasecmp(un->un_name, "CALLED_DID")) {
    switch_channel_set_variable(channel, "called_did", un->un_value);

Между:

} else if (!strcasecmp(un->un_name, "Geolocation")) {
    switch_channel_set_variable(channel, "sip_geolocation", un->un_value);

И:

} else if (!strcasecmp(un->un_name, "Geolocation-Error")) {`
    switch_channel_set_variable(channel, "sip_user_location", un->un_value);

И получить этот заголовок в плане набора номеров следующим образом:

<action application="log" data="DEBUG Called Did -> ${called_did}"/> 
0 голосов
/ 20 марта 2019

Прочитав тонну материала, я пришел к выводу:

Чтение пользовательского заголовка без префикса X- невозможно без изменения исходного кода.

Но в моем случае это неприемлемо.

...