Пожалуйста, войдите здесь. Часто задаваемые вопросы О нас
Задайте Ваш вопрос

История изменений [назад]

нажмите, чтобы скрыть/показать версии 1
изначальная версия
редактировать

спросил 2015-06-05 05:19:27 +0400

AlexPTZ Gravatar AlexPTZ

http://www.virtel.net/

Record-Route и Contact содержат внутренний IP вместо внешнего

Здравствуйте, коллеги!

Прошу помощи с настройкой kamailio

Kamailio выступает в роли прокси для sip клиентов

Inet -> (X.X.X.X) Kamailio (192.168.30.250) -> Asterisk (192.168.30.2)

SIP клиенты регистрируются на kamailio (X.X.X.X) дальше на астериск

При звонке с SIP клиента возникает INVITE/SDP следующего содержания

SIP/2.0 200 OK
Via: SIP/2.0/UDP 192.168.1.52:27080;received=10.10.101.50;branch=z9hG4bK-d8754z-027c786dac17bf68-1---d8754z-;rport=27080
Record-Route: <sip:192.168.30.2;line=sr-mYtaP6eErk-dx6VfrLzfr6BaPGj0OHFfPYd0OHFfPYIQpHmFr9mQPKDEx9VlvZ8QO4ttma**>
Record-Route: <sip:X.X.X.X;r2=on;lr=on;ftag=0748d948;nat=yes>
From: <sip:user4@X.X.X.X>;tag=0748d948
To: <sip:9002@X.X.X.X>;tag=as3914e1d1
Call-ID: ZWU5YmFiNTNhNmNmYWQzYzhkZWUzZDNjOTU3MDFiNGU.
CSeq: 2 INVITE
Server: Virtel.net Node2
Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, SUBSCRIBE, NOTIFY, INFO, PUBLISH, MESSAGE
Supported: replaces, timer
Contact: <sip:192.168.30.2;line=sr-mYtaP62ar9nzrg20y6eYPA-LrA-0P6Bax6z*>
Content-Type: application/sdp
Content-Length: 278

v=0
o=root 732368067 732368067 IN IP4 X.X.X.X
s=Asterisk PBX 11.17.1
c=IN IP4 X.X.X.X
t=0 0
m=audio 15768 RTP/AVP 0 8 101
a=rtpmap:0 PCMU/8000
a=rtpmap:8 PCMA/8000
a=rtpmap:101 telephone-event/8000
a=fmtp:101 0-16
a=ptime:20
a=sendrecv
a=nortpproxy:yes

Каким образом избавиться от "засвета" внутреннего IP asterisk ? Думаю, что по этой-же причине не всегда корректно ходит rtp

Record-Route и Contact содержат внутренний IP вместо внешнего

Здравствуйте, коллеги!

Прошу помощи с настройкой kamailio

Kamailio выступает в роли прокси для sip клиентов

Inet -> (X.X.X.X) Kamailio (192.168.30.250) -> Asterisk (192.168.30.2)

SIP клиенты регистрируются на kamailio (X.X.X.X) дальше на астериск

При звонке с SIP клиента возникает INVITE/SDP следующего содержанияидущий с asterisk через kamailio

SIP/2.0 200 OK
Via: SIP/2.0/UDP 192.168.1.52:27080;received=10.10.101.50;branch=z9hG4bK-d8754z-027c786dac17bf68-1---d8754z-;rport=27080
Record-Route: <sip:192.168.30.2;line=sr-mYtaP6eErk-dx6VfrLzfr6BaPGj0OHFfPYd0OHFfPYIQpHmFr9mQPKDEx9VlvZ8QO4ttma**>
Record-Route: <sip:X.X.X.X;r2=on;lr=on;ftag=0748d948;nat=yes>
From: <sip:user4@X.X.X.X>;tag=0748d948
To: <sip:9002@X.X.X.X>;tag=as3914e1d1
Call-ID: ZWU5YmFiNTNhNmNmYWQzYzhkZWUzZDNjOTU3MDFiNGU.
CSeq: 2 INVITE
Server: Virtel.net Node2
Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, SUBSCRIBE, NOTIFY, INFO, PUBLISH, MESSAGE
Supported: replaces, timer
Contact: <sip:192.168.30.2;line=sr-mYtaP62ar9nzrg20y6eYPA-LrA-0P6Bax6z*>
Content-Type: application/sdp
Content-Length: 278

v=0
o=root 732368067 732368067 IN IP4 X.X.X.X
s=Asterisk PBX 11.17.1
c=IN IP4 X.X.X.X
t=0 0
m=audio 15768 RTP/AVP 0 8 101
a=rtpmap:0 PCMU/8000
a=rtpmap:8 PCMA/8000
a=rtpmap:101 telephone-event/8000
a=fmtp:101 0-16
a=ptime:20
a=sendrecv
a=nortpproxy:yes

Каким образом избавиться от "засвета" внутреннего IP asterisk ? Думаю, что по этой-же причине не всегда корректно ходит rtp

Record-Route и Contact содержат внутренний IP вместо внешнего

Здравствуйте, коллеги!

Прошу помощи с настройкой kamailio

Kamailio выступает в роли прокси для sip клиентов

Inet -> (X.X.X.X) Kamailio (192.168.30.250) -> Asterisk (192.168.30.2)

SIP клиенты регистрируются на kamailio (X.X.X.X) дальше на астериск

При звонке с SIP клиента возникает INVITE/SDP идущий с asterisk через kamailio

SIP/2.0 200 OK
Via: SIP/2.0/UDP 192.168.1.52:27080;received=10.10.101.50;branch=z9hG4bK-d8754z-027c786dac17bf68-1---d8754z-;rport=27080
Record-Route: <sip:192.168.30.2;line=sr-mYtaP6eErk-dx6VfrLzfr6BaPGj0OHFfPYd0OHFfPYIQpHmFr9mQPKDEx9VlvZ8QO4ttma**>
Record-Route: <sip:X.X.X.X;r2=on;lr=on;ftag=0748d948;nat=yes>
From: <sip:user4@X.X.X.X>;tag=0748d948
To: <sip:9002@X.X.X.X>;tag=as3914e1d1
Call-ID: ZWU5YmFiNTNhNmNmYWQzYzhkZWUzZDNjOTU3MDFiNGU.
CSeq: 2 INVITE
Server: Virtel.net Node2
Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, SUBSCRIBE, NOTIFY, INFO, PUBLISH, MESSAGE
Supported: replaces, timer
Contact: <sip:192.168.30.2;line=sr-mYtaP62ar9nzrg20y6eYPA-LrA-0P6Bax6z*>
Content-Type: application/sdp
Content-Length: 278

v=0
o=root 732368067 732368067 IN IP4 X.X.X.X
s=Asterisk PBX 11.17.1
c=IN IP4 X.X.X.X
t=0 0
m=audio 15768 RTP/AVP 0 8 101
a=rtpmap:0 PCMU/8000
a=rtpmap:8 PCMA/8000
a=rtpmap:101 telephone-event/8000
a=fmtp:101 0-16
a=ptime:20
a=sendrecv
a=nortpproxy:yes

Каким образом избавиться от "засвета" внутреннего IP asterisk ? Думаю, что по этой-же причине не всегда корректно ходит rtp

Пробовал делать вот так

onreply_route[MANAGE_REPLY] {
    xdbg("incoming reply\n");
    if(status=~"[12][0-9][0-9]") {
        xlog('L_INFO','Call to route[NATMANAGE] from MANAGE_REPLY ');
        route(NATMANAGE);
        if ( ds_is_from_list() && is_method("INVITE") ) {
          if(has_body("application/sdp")) {
            xlog("L_ERR", "onreply_route[MANAGE_REPLY] try to add contact to $var(src_ip):$Rp ct=$ct\n");

            $avp(contact)="sip:X.X.X.X:5060";
            xlog("L_ERR", "onreply_route[MANAGE_REPLY] M=$rm try to change CONTACT FIELD to $avp(contact)\n");
           if (remove_hf("Contact")) {
               insert_hf("Contact: <$avp(contact)>\r\n","Contact");
               insert_hf("X-REM: <$avp(contact)>\r\n","Call-ID");
           }
         }
        }
    }
}

Но Contact не меняется, хотя X-REM Добавляется

Record-Route и Contact содержат внутренний IP вместо внешнего

Здравствуйте, коллеги!

Прошу помощи с настройкой kamailio

Kamailio выступает в роли прокси для sip клиентов

Inet -> (X.X.X.X) Kamailio (192.168.30.250) -> Asterisk (192.168.30.2)

SIP клиенты регистрируются на kamailio (X.X.X.X) дальше на астериск

При звонке с SIP клиента возникает INVITE/SDP идущий с asterisk через kamailio

SIP/2.0 200 OK
Via: SIP/2.0/UDP 192.168.1.52:27080;received=10.10.101.50;branch=z9hG4bK-d8754z-027c786dac17bf68-1---d8754z-;rport=27080
Record-Route: <sip:192.168.30.2;line=sr-mYtaP6eErk-dx6VfrLzfr6BaPGj0OHFfPYd0OHFfPYIQpHmFr9mQPKDEx9VlvZ8QO4ttma**>
Record-Route: <sip:X.X.X.X;r2=on;lr=on;ftag=0748d948;nat=yes>
From: <sip:user4@X.X.X.X>;tag=0748d948
To: <sip:9002@X.X.X.X>;tag=as3914e1d1
Call-ID: ZWU5YmFiNTNhNmNmYWQzYzhkZWUzZDNjOTU3MDFiNGU.
CSeq: 2 INVITE
Server: Virtel.net Node2
Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, SUBSCRIBE, NOTIFY, INFO, PUBLISH, MESSAGE
Supported: replaces, timer
Contact: <sip:192.168.30.2;line=sr-mYtaP62ar9nzrg20y6eYPA-LrA-0P6Bax6z*>
Content-Type: application/sdp
Content-Length: 278

v=0
o=root 732368067 732368067 IN IP4 X.X.X.X
s=Asterisk PBX 11.17.1
c=IN IP4 X.X.X.X
t=0 0
m=audio 15768 RTP/AVP 0 8 101
a=rtpmap:0 PCMU/8000
a=rtpmap:8 PCMA/8000
a=rtpmap:101 telephone-event/8000
a=fmtp:101 0-16
a=ptime:20
a=sendrecv
a=nortpproxy:yes

Каким образом избавиться от "засвета" внутреннего IP asterisk ? Думаю, что по этой-же причине не всегда корректно ходит rtp

Пробовал делать вот так

onreply_route[MANAGE_REPLY] {
    xdbg("incoming reply\n");
    if(status=~"[12][0-9][0-9]") {
        xlog('L_INFO','Call to route[NATMANAGE] from MANAGE_REPLY ');
        route(NATMANAGE);
        if ( ds_is_from_list() && is_method("INVITE") ) {
          if(has_body("application/sdp")) {
            xlog("L_ERR", "onreply_route[MANAGE_REPLY] try to add contact to $var(src_ip):$Rp ct=$ct\n");

            $avp(contact)="sip:X.X.X.X:5060";
            xlog("L_ERR", "onreply_route[MANAGE_REPLY] M=$rm try to change CONTACT FIELD to $avp(contact)\n");
           if (remove_hf("Contact")) {
               insert_hf("Contact: <$avp(contact)>\r\n","Contact");
<$avp(contact)>\r\n","Call-ID");
               insert_hf("X-REM: <$avp(contact)>\r\n","Call-ID");
           }
         }
        }
    }
}

Но Contact не меняется, хотя X-REM Добавляется

Проект компании "АТС Дизайн"
Asterisk® и Digium® являются зарегистрированными торговыми марками компании Digium, Inc., США.
IP АТС Asterisk распространяется под лицензией GNU GPL.