Two asterisks, direct media, strictrtp=yes, after media renegotiation (re-invite), RTP dropped

Hello,

Sorry I couldn’t find a proper way to get this resolved:

The network structure is like this:
User_A —> Asterisk 1 ----> Asterisk 2

User_A dialed a number (e.g. 1234) and the call was routed to Asterisk 1 first. Asterisk answered the call. Then User_A said “I want to talk to Asterisk 2”. So Asterisk 1 initiated another leg to Asterisk 2 (by Dial() application).
Due to “Direct media” configuration in Asterisk 1, Asterisk 1 sent the first INVITE to Asterisk 2 with its own media IP and Port. When Asterisk 2 answered the call, another INVITE with User_A’s media IP/Port sent to Asterisk 2, in order to make User_A and Asterisk 2 talk to each other directly. So far so good.

However, Asterisk 2 has “strictrtp=yes” and “probation=4” by default. So the media will be “protected” based on the first 4 RTP packets that Asterisk 2 received.
Here is my problem: After the call was answered but before the media was re-directed to User_A, Asterisk 1 started to send out some RTP packets (because the first media negotiation is between Asterisk 1 and Asterisk 2), which triggered the “strict rtp protection” in Asterisk 2 so those real useful RTP coming from User_A all dropped by Asterisk 2

My question is: Any way to bridge 2 legs without RTP from Asterisk 1? “Direct Media” and “strictrtp” are mandatory and “probation=4” also better not to be increased.

Many thanks in advance.

---------Pcap screenshot------

----------The logs captured from Asterisk 2-----------
[Mar 11 15:38:36] DEBUG[5382][C-00000003] res_rtp_asterisk.c: 0x7fb2887998b0 – start learning mode pass with addr = 172.19.98.203:10888
[Mar 11 15:38:36] DEBUG[5382][C-00000003] res_rtp_asterisk.c: 0x7fb2887998b0 – probation = 4, seq = 8301
[Mar 11 15:38:36] DEBUG[5382][C-00000003] res_rtp_asterisk.c: 0x7fb2887998b0 – Condition for learning hasn’t exited, so reject the frame.
[Mar 11 15:38:36] DEBUG[5382][C-00000003] res_rtp_asterisk.c: 0x7fb2887998b0 – start learning mode pass with addr = 172.19.98.203:10888
[Mar 11 15:38:36] DEBUG[5382][C-00000003] res_rtp_asterisk.c: 0x7fb2887998b0 – probation = 3, seq = 8302
[Mar 11 15:38:36] DEBUG[5382][C-00000003] res_rtp_asterisk.c: 0x7fb2887998b0 – Condition for learning hasn’t exited, so reject the frame.
[Mar 11 15:38:36] DEBUG[5382][C-00000003] res_rtp_asterisk.c: 0x7fb2887998b0 – start learning mode pass with addr = 172.19.98.203:10888
[Mar 11 15:38:36] DEBUG[5382][C-00000003] res_rtp_asterisk.c: 0x7fb2887998b0 – probation = 2, seq = 8303
[Mar 11 15:38:36] DEBUG[5382][C-00000003] res_rtp_asterisk.c: 0x7fb2887998b0 – Condition for learning hasn’t exited, so reject the frame.
[Mar 11 15:38:36] DEBUG[5382][C-00000003] res_rtp_asterisk.c: 0x7fb2887998b0 – start learning mode pass with addr = 172.19.98.203:10888
[Mar 11 15:38:36] DEBUG[5382][C-00000003] res_rtp_asterisk.c: 0x7fb2887998b0 – probation = 1, seq = 8304
[Mar 11 15:38:36] DEBUG[5382][C-00000003] res_rtp_asterisk.c: 0x7fb2887998b0 – Probation Ended. Set strict_rtp_state to STRICT_RTP_CLOSED with address 172.19.98.203:10888
[Mar 11 15:38:36] VERBOSE[5382][C-00000003] res_rtp_asterisk.c: Got RTP packet from 172.19.98.203:10888 (type 00, seq 008304, ts 1375408480, len 000160)
[Mar 11 15:38:36] VERBOSE[5382][C-00000003] res_rtp_asterisk.c: Got RTP packet from 172.19.98.203:10888 (type 00, seq 008305, ts 1375408640, len 000160)
[Mar 11 15:38:36] VERBOSE[5382][C-00000003] res_rtp_asterisk.c: Got RTP packet from 172.19.98.203:10888 (type 00, seq 008306, ts 1375408800, len 000160)
[Mar 11 15:38:36] DEBUG[5382][C-00000003] res_rtp_asterisk.c: Received RTP packet from 172.23.83.25:15408, dropping due to strict RTP protection. Expected it to be from 172.19.98.203:10888
[Mar 11 15:38:36] VERBOSE[5382][C-00000003] res_rtp_asterisk.c: Got RTP packet from 172.19.98.203:10888 (type 00, seq 008307, ts 1375408960, len 000160)
[Mar 11 15:38:36] DEBUG[5382][C-00000003] res_rtp_asterisk.c: Received RTP packet from 172.23.83.25:15408, dropping due to strict RTP protection. Expected it to be from 172.19.98.203:10888
[Mar 11 15:38:36] DEBUG[5382][C-00000003] res_rtp_asterisk.c: Received RTP packet from 172.23.83.25:15408, dropping due to strict RTP protection. Expected it to be from 172.19.98.203:10888
[Mar 11 15:38:36] DEBUG[5382][C-00000003] res_rtp_asterisk.c: Received RTP packet from 172.23.83.25:15408, dropping due to strict RTP protection. Expected it to be from 172.19.98.203:10888

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.