LINUX.ORG.RU

nua_i_register Sofia-SIP

 ,


0

1

Всем доброго времени суток. Обновляю свой вопрос от 25.05.2015...

Здравствуйте! Подскажите пожалуйста, как правильно отвечать на запрос телефона «nua_i_register»? Сейчас отвечаю так

nua_respond(SAPP.nh, SIP_200_OK, NUTAG_WITH_THIS(SAPP.nua), TAG_END());

где

struct SofiaApp {
    int status;
    char const   *phrase;
    nua_t        *nua;
    nua_magic_t  *magic;
    nua_handle_t *nh;
    nua_hmagic_t *hmagic;
    sip_t const  *sip;
    tagi_t        tags[];
};

struct SofiaApp SAPP;

Телефон присылает запрос, я отвечаю, но телефон опять присылает такой же запрос, будто он не получил или не понял ответ. Телефон - Grandstream GXP1405. Раньше был телефон D-Link DPH-150SE, с ним было всё нормально (прислал запрос - получил ответ и больше регистрацию не запрашивает).

C того времени этой проблемой не занимался. Сейчас руки до неё дошли. Посмотрел, какие сообщения приходят от D-Link и от Grandstream:

D-Link -

REGISTER sip:192.168.5.154 SIP/2.0
Via: SIP/2.0/UDP 192.168.5.45:5060;branch=z9hG4bK27703176473168010133
From: 2 <sip:2@192.168.5.154:5062>;tag=189712931
To: 2 <sip:2@192.168.5.154:5062>
Call-ID: 202393233923756-25077304223136@192.168.5.45
CSeq: 1 REGISTER
Contact: <sip:2@192.168.5.45:5060>
Max-Forwards: 70
Expires: 3600
Supported: path
User-Agent: DLINK DPH-150SE FRU2.2.182.77
Allow: INVITE, ACK, OPTIONS, BYE, CANCEL, REFER, NOTIFY, INFO, PRACK, UPDATE, MESSAGE
Content-Length: 0
Grandstream -
REGISTER sip:192.168.5.154 SIP/2.0
Via: SIP/2.0/UDP 192.168.5.161:5060;branch=z9hG4bK84632304;rport=5060
Route: <sip:192.168.5.154:5060;lr>
From: <sip:1@192.168.5.154>;tag=1210591191
To: <sip:1@192.168.5.154>
Call-ID: 938343617-5060-1@BJC.BGI.F.BGB
CSeq: 2135 REGISTER
Contact: <sip:1@192.168.5.161:5060>;reg-id=1;+sip.instance="<urn:uuid:00000000-0000-1000-8000-000B826F4EF9>"
Max-Forwards: 70
User-Agent: Grandstream GXP1405 1.0.6.11
Supported: path
Expires: 3600
Allow: INVITE, ACK, OPTIONS, CANCEL, BYE, SUBSCRIBE, NOTIFY, INFO, REFER, UPDATE, MESSAGE
Content-Length: 0

Есть ли у вас какие-нибудь предположения, чего от меня добивается Grandstream, повторяя один и тот же регистрационный запрос?

Ответ на: комментарий от upcFrost

Проверил с FreeSwitch. Когда приходит запрос на регистрацию от Grandstream'a, FS отправляет 200 OK, потом NOTIFY. Grandstream отвечает 200 OK, и регистрация, похоже, завершается успешно.

Вот siptrace регистрации:

recv 572 bytes from udp/[192.168.248.160]:5060 at 04:
08:43.269130:
   ------------------------------------------------------------------------
   REGISTER sip:192.168.248.249 SIP/2.0
   Via: SIP/2.0/UDP 192.168.248.160:5060;branch=z9hG4bK1543706890;rport
   From: <sip:1000@192.168.248.249>;tag=1428850542
   To: <sip:1000@192.168.248.249>
   Call-ID: 430692032-5060-1@BJC.BGI.CEI.BGA
   CSeq: 2000 REGISTER
   Contact: <sip:1000@192.168.248.160:5060>;reg-id=1;+sip.instance="<urn:uuid:00
000000-0000-1000-8000-000B826F4EF9>"
   Max-Forwards: 70
   User-Agent: Grandstream GXP1405 1.0.6.11
   Supported: path
   Expires: 3600
   Allow: INVITE, ACK, OPTIONS, CANCEL, BYE, SUBSCRIBE, NOTIFY, INFO, REFER, UPD
ATE, MESSAGE
   Content-Length: 0

   ------------------------------------------------------------------------
send 600 bytes to udp/[192.168.248.160]:5060 at 04:08:43.275130:
   ------------------------------------------------------------------------
   SIP/2.0 401 Unauthorized
   Via: SIP/2.0/UDP 192.168.248.160:5060;branch=z9hG4bK1543706890;rport=5060
   From: <sip:1000@192.168.248.249>;tag=1428850542
   To: <sip:1000@192.168.248.249>;tag=mQNQX23eNSK9S
   Call-ID: 430692032-5060-1@BJC.BGI.CEI.BGA
   CSeq: 2000 REGISTER
   User-Agent: FreeSWITCH-mod_sofia/1.5.15b~64bit
   Allow: INVITE, ACK, BYE, CANCEL, OPTIONS, MESSAGE, INFO, UPDATE, REGISTER, RE
FER, NOTIFY, PUBLISH, SUBSCRIBE
   Supported: timer, path, replaces
   WWW-Authenticate: Digest realm="192.168.248.249", nonce="7f1dcbf6-1093-4240-9
ccc-5efd6e87755d", algorithm=MD5, qop="auth"
   Content-Length: 0

   ------------------------------------------------------------------------
recv 811 bytes from udp/[192.168.248.160]:5060 at 04:08:43.299630:
   ------------------------------------------------------------------------
   REGISTER sip:192.168.248.249 SIP/2.0
   Via: SIP/2.0/UDP 192.168.248.160:5060;branch=z9hG4bK1990446079;rport
   From: <sip:1000@192.168.248.249>;tag=1428850542
   To: <sip:1000@192.168.248.249>
   Call-ID: 430692032-5060-1@BJC.BGI.CEI.BGA
   CSeq: 2001 REGISTER
   Contact: <sip:1000@192.168.248.160:5060>;reg-id=1;+sip.instance="<urn:uuid:00
000000-0000-1000-8000-000B826F4EF9>"
   Authorization: Digest username="1000", realm="192.168.248.249", nonce="7f1dcb
f6-1093-4240-9ccc-5efd6e87755d", uri="sip:192.168.248.249", response="848c5d22b1
006d1a16ba31dfa75e1023", algorithm=MD5, cnonce="05861918", qop=auth, nc=00000001

   Max-Forwards: 70
   User-Agent: Grandstream GXP1405 1.0.6.11
   Supported: path
   Expires: 3600
   Allow: INVITE, ACK, OPTIONS, CANCEL, BYE, SUBSCRIBE, NOTIFY, INFO, REFER, UPD
ATE, MESSAGE
   Content-Length: 0

   ------------------------------------------------------------------------
send 559 bytes to udp/[192.168.248.160]:5060 at 04:08:43.312630:
   ------------------------------------------------------------------------
   SIP/2.0 200 OK
   Via: SIP/2.0/UDP 192.168.248.160:5060;branch=z9hG4bK1990446079;rport=5060
   From: <sip:1000@192.168.248.249>;tag=1428850542
   To: <sip:1000@192.168.248.249>;tag=N0egZXmjj29UN
   Call-ID: 430692032-5060-1@BJC.BGI.CEI.BGA
   CSeq: 2001 REGISTER
   Contact: <sip:1000@192.168.248.160:5060>;expires=3600
   Date: Sat, 22 Aug 2015 04:08:43 GMT
   User-Agent: FreeSWITCH-mod_sofia/1.5.15b~64bit
   Allow: INVITE, ACK, BYE, CANCEL, OPTIONS, MESSAGE, INFO, UPDATE, REGISTER, RE
FER, NOTIFY, PUBLISH, SUBSCRIBE
   Supported: timer, path, replaces
   Content-Length: 0

   ------------------------------------------------------------------------
send 909 bytes to udp/[192.168.248.160]:5060 at 04:08:43.411130:
   ------------------------------------------------------------------------
   NOTIFY sip:1000@192.168.248.160:5060 SIP/2.0
   Via: SIP/2.0/UDP 192.168.248.249;rport;branch=z9hG4bK8tFZQX93NpD4N
   Max-Forwards: 70
   From: <sip:1000@192.168.248.249>;tag=p9780r5NFB0eH
   To: <sip:1000@192.168.248.249>
   Call-ID: 51a6134b-c326-1233-b79e-03830d41b055
   CSeq: 79772197 NOTIFY
   Contact: <sip:mod_sofia@192.168.248.249:5060>
   User-Agent: FreeSWITCH-mod_sofia/1.5.15b~64bit
   Allow: INVITE, ACK, BYE, CANCEL, OPTIONS, MESSAGE, INFO, UPDATE, REGISTER, RE
FER, NOTIFY, PUBLISH, SUBSCRIBE
   Supported: timer, path, replaces
   Event: message-summary
   Allow-Events: talk, hold, conference, presence, as-feature-event, dialog, lin
e-seize, call-info, sla, include-session-description, presence.winfo, message-su
mmary, refer
   Subscription-State: terminated;reason=noresource
   Content-Type: application/simple-message-summary
   Content-Length: 67

   Messages-Waiting: no
   Message-Account: sip:1000@192.168.248.249

   ------------------------------------------------------------------------
recv 445 bytes from udp/[192.168.248.160]:5060 at 04:08:43.439130:
   ------------------------------------------------------------------------
   SIP/2.0 200 OK
   Via: SIP/2.0/UDP 192.168.248.249;rport=5060;branch=z9hG4bK8tFZQX93NpD4N
   From: <sip:1000@192.168.248.249>;tag=p9780r5NFB0eH
   To: <sip:1000@192.168.248.249>;tag=392674902
   Call-ID: 51a6134b-c326-1233-b79e-03830d41b055
   CSeq: 79772197 NOTIFY
   Supported: replaces, path, timer
   User-Agent: Grandstream GXP1405 1.0.6.11
   Allow: INVITE, ACK, OPTIONS, CANCEL, BYE, SUBSCRIBE, NOTIFY, INFO, REFER, UPD
ATE, MESSAGE
   Content-Length: 0

   ------------------------------------------------------------------------

Теперь, я также отправляю 200 ОК, а потом

nua_notify(SAPP.nh, TAG_END())
Получаю
nua_r_notify: 481 Call/Transaction Does Not Exist
Подскажите пожалуйста, как правильно отправить nua_notify?

jockerface
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.