Re-invite to non-existing call leg on other UA - Call dropped

wrender
Posts: 10
Member Since:
2010-11-18

Hello,

I am having an issue where a call is being dropped. This call in particular was in progress for about 30 minutes and was suddenly dropped. I was able to trace back in my log, and found the error "Re-invite to non-existing call leg on other UA" which happened right before the call was dropped. It also looks like someone using my system tried to make an outbound call right before this dropped, or at the same time.

Here is a log:

[Nov 18 15:00:57] VERBOSE[28037] logger.c:     -- Executing [h@macro-dialout-trunk:1] Macro("SIP/204-0000003d", "hangupcall,") in new stack
[Nov 18 15:00:57] VERBOSE[28037] logger.c:     -- Executing [s@macro-hangupcall:1] GotoIf("SIP/204-0000003d", "1?skiprg") in new stack
[Nov 18 15:00:57] VERBOSE[28037] logger.c:     -- Goto (macro-hangupcall,s,4)
[Nov 18 15:00:57] VERBOSE[28037] logger.c:     -- Executing [s@macro-hangupcall:4] GotoIf("SIP/204-0000003d", "1?skipblkvm") in new stack
[Nov 18 15:00:57] VERBOSE[28037] logger.c:     -- Goto (macro-hangupcall,s,7)
[Nov 18 15:00:57] VERBOSE[28037] logger.c:     -- Executing [s@macro-hangupcall:7] GotoIf("SIP/204-0000003d", "1?theend") in new stack
[Nov 18 15:00:57] VERBOSE[28037] logger.c:     -- Goto (macro-hangupcall,s,9)
[Nov 18 15:00:57] VERBOSE[28037] logger.c:     -- Executing [s@macro-hangupcall:9] Hangup("SIP/204-0000003d", "") in new stack
[Nov 18 15:00:57] VERBOSE[28037] logger.c:   == Spawn extension (macro-hangupcall, s, 9) exited non-zero on 'SIP/204-0000003d' in macro 'hangupcall'
[Nov 18 15:00:57] VERBOSE[28037] logger.c:     -- Hungup 'DAHDI/1-1'
[Nov 18 15:00:57] VERBOSE[28037] logger.c:   == Spawn extension (macro-dialout-trunk, s, 19) exited non-zero on 'SIP/204-0000003d' in macro 'dialout-trunk'
[Nov 18 15:00:57] VERBOSE[28037] logger.c:   == Spawn extension (from-internal, 94032424361, 4) exited non-zero on 'SIP/204-0000003d'
[Nov 18 15:00:57] DEBUG[2500] pbx.c: FONALITY: This thread has already held the conlock, skip locking
[Nov 18 15:05:47] WARNING[2704] chan_sip.c: Re-invite to non-existing call leg on other UA. SIP dialog '94342cd4-6dfe-122e-d1a0-35ea302e4076'. Giving up.
[Nov 18 15:05:47] VERBOSE[27780] logger.c:     -- Executing [h@macro-dial:1] Macro("SIP/link2voip-sw2-00000036", "hangupcall") in new stack
[Nov 18 15:05:47] VERBOSE[27780] logger.c:     -- Executing [s@macro-hangupcall:1] GotoIf("SIP/link2voip-sw2-00000036", "1?skiprg") in new stack
[Nov 18 15:05:47] VERBOSE[27780] logger.c:     -- Goto (macro-hangupcall,s,4)
[Nov 18 15:05:47] VERBOSE[27780] logger.c:     -- Executing [s@macro-hangupcall:4] GotoIf("SIP/link2voip-sw2-00000036", "0?skipblkvm") in new stack
[Nov 18 15:05:47] VERBOSE[27780] logger.c:     -- Executing [s@macro-hangupcall:5] NoOp("SIP/link2voip-sw2-00000036", "Cleaning Up Block VM Flag: BLKVM/600/SIP/link2voip-sw2-00000036") in new stack
[Nov 18 15:05:47] VERBOSE[27780] logger.c:     -- Executing [s@macro-hangupcall:6] DBdel("SIP/link2voip-sw2-00000036", "BLKVM/600/SIP/link2voip-sw2-00000036") in new stack
[Nov 18 15:05:47] VERBOSE[27780] logger.c:     -- DBdel: family=BLKVM, key=600/SIP/link2voip-sw2-00000036
[Nov 18 15:05:47] VERBOSE[27780] logger.c:     -- DBdel: Error deleting key from database.
[Nov 18 15:05:47] VERBOSE[27780] logger.c:     -- Executing [s@macro-hangupcall:7] GotoIf("SIP/link2voip-sw2-00000036", "1?theend") in new stack
[Nov 18 15:05:47] VERBOSE[27780] logger.c:     -- Goto (macro-hangupcall,s,9)
[Nov 18 15:05:47] VERBOSE[27780] logger.c:     -- Executing [s@macro-hangupcall:9] Hangup("SIP/link2voip-sw2-00000036", "") in new stack
[Nov 18 15:05:47] VERBOSE[27780] logger.c:   == Spawn extension (macro-hangupcall, s, 9) exited non-zero on 'SIP/link2voip-sw2-00000036' in macro 'hangupcall'
[Nov 18 15:05:47] VERBOSE[27780] logger.c:   == Spawn extension (macro-dial, h, 1) exited non-zero on 'SIP/link2voip-sw2-00000036'
[Nov 18 15:05:47] VERBOSE[27780] logger.c:   == Spawn extension (macro-dial, s, 7) exited non-zero on 'SIP/link2voip-sw2-00000036' in macro 'dial'
[Nov 18 15:05:47] VERBOSE[27780] logger.c:   == Spawn extension (ext-group, 600, 13) exited non-zero on 'SIP/link2voip-sw2-00000036'
[Nov 18 15:05:47] DEBUG[2500] pbx.c: FONALITY: This thread has already held the conlock, skip locking


wrender
Posts: 10
Member Since:
2010-11-18
Have found a modification

I found the modification below on voip-info.com. I am just trying this, and will see if I get any more dropped calls. It seems like they have the same issue below although my server is asterisk 1.6.0.26-FONCORE-r78

For users of Asterisk 1.6:

Starting with Asterisk 1.6, extra checks are done in the SIP and SDP streams to ensure validity. One side effect of this is this is that "hairpin" calls may, that is a call from the Metaswitch, through Asterisk, and back out through the same Metaswitch, may fail. The message on my console was:
Nov 20 03:34:39 WARNING20072: chan_sip.c:16944 handle_response_invite: Re-invite to non-existing call leg on other UA. SIP dialog '000032c00000122e00001c920000214f@192.168.1.1'. Giving up.

While the Metaswitch seems to conform well to Asterisk 1.6 in most cases, in this specific case the SDP owner version number is not incremented, causing Asterisk 1.6.0 (and later versions) to reject the updated SDP information. This in turn causes asterisk to send a BYE prior to sending the two re-INVITES to bridge the channels. The result is the error message above.

To fix this problem, add the following line to your peer definition in your sip.conf:

ignoresdpversion=yes

This has been tested with Asterisk 1.6.1.10 and Asterisk 1.6.0.18.



neologan
Posts: 1
Member Since:
2010-12-27
I have the same problem

Hi wrender,

Did you solve your problem?

neo



eo1
Posts: 3
Member Since:
2011-08-29
Same problem

We are having the same problem here, too. We have a few Asterisk 1.6 boxes linking to a metaswitch just fine but we were trying to test some 1.8 boxes and we are getting the same error - even with the ignoresdpversion set to yes. Any advice? What is interesting is I can call out and it rings, it's only when the called party picks up does that happen and the call is dropped.



wrender
Posts: 10
Member Since:
2010-11-18
Hello

I believe there is a problem with the load order of some of the components that come with Trixbox CE. It was such a long time ago that I can't remember exactly what I did. If I remember correctly here were the symptoms:

1. After rebooting Trixbox
2. Make outgoing call and call is dropped within 30 seconds
3. When you click "Apply Configuration" the problem goes away

I believe the problem has to do with the order asterisk loads the config files with that trixbox ce distribution. What type of sip client is the call being made from?



eo1
Posts: 3
Member Since:
2011-08-29
Nevermind

Wow...Ended up being ignorance on our part in the configs. We duped the configs from another box and didn't change them to work within the new server *facepalm*



bhuffman
Posts: 9
Member Since:
2010-04-12
ignoresdpversion

eo1: Is the "ignoresdpversion" what solved it for you?

Thanks,
Brian



wrender
Posts: 10
Member Since:
2010-11-18
Setup your external IP address

Are you using an external sip provider for your calls? With trixbox you need to make sure to do a few things so your calls can get through your router. Otherwise maybe you are noticing your inbound sip calls drop after about 10-20 seconds?

1. Make sure you have the correct ports forwarded on your firewall. Your sip provider should be able to give you this info. Normally this includes 5060 UDP, and then an RTP range (mine is 8000-2000 UDP).

2. In your Trixbox CE go to "PBX" -> "Config File Editor" -> "sip_nat.conf" and make sure you have the following. Most importantly you need to put in your public IP address:

nat=yes
externip= (your external ip address)
localhost=192.168.1.5
localnet=192.168.1.0/255.255.255.0

3. Next you need to edit your rtp.conf file. Go to "Config File Editor" again and edit this file. Make sure you have your RTP range defined in here. Like this:

;
; RTP Configuration
;
[general]
;
; RTP start and RTP end configure start and end addresses
;
rtpstart=8000
rtpend=20000

After you make these changes make sure to restart asterisk.



bhuffman
Posts: 9
Member Since:
2010-04-12
My problem is with the call drop after 30 minutes

wrender - I've already set those options (and firewall ports) correctly.

My issue is with call drops after 30 minutes with the log message of "Re-invite to non-existing call leg on other UA."

Thanks,
Brian



wrender
Posts: 10
Member Since:
2010-11-18
Ok

What happens after you do an "Apply Configuration" does the call still drop after 30 minutes?



bhuffman
Posts: 9
Member Since:
2010-04-12
Apply config

I guess you're suggesting to make some change and then change it back? So that I get an "Apply Config" option in the GUI? b/c I don't have any pending changes out there...

I can try that and test, but that's a very bad solution. If that config option works, I'd prefer that.

Thanks,
Brian



wrender
Posts: 10
Member Since:
2010-11-18
Apply configuration

Yes. Basically just make any change in the web interface. I believe when you hit the "Apply Configuration" it loads the asterisk scripts in the correct order. If I remember correctly there is a bug in the backend of the load order of asterisk scripts that was causing this issue. If you can do this, and then do a 30 minute test call and let me know if it works. After that I will try and dig up the modifications I had to make on my asterisk backend which resolved this issue. This way you won't have the issue again after a reboot.

Wes



wrender
Posts: 10
Member Since:
2010-11-18
Followup

Hi bhuffman, just wondering did restarting asterisk from the web interface resolve this issue for you?



Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.