Summary: | ASTERISK-06914: SIP<->IAX2 call using H.263 crashes Asterisk unless built with 'make dont-optimize' | ||
Reporter: | Aloha Tone (alohatone) | Labels: | |
Date Opened: | 2006-05-07 17:17:11 | Date Closed: | 2006-05-19 20:03:15 |
Priority: | Major | Regression? | No |
Status: | Closed/Complete | Components: | Core/General |
Versions: | Frequency of Occurrence | ||
Related Issues: | |||
Environment: | Attachments: | ||
Description: | I have a h263 sip device registered to server "A". Server "A" connected to Server "B" Over an IAX2 Link which is connected to the PSTN (PRI) via a TE110P. When the Call is containted with Server "A" (sip-->sip) calls work FINE and video is great. If route a call to Server "B" for PSTN Dialing (via and IAX2) Server "B" dials correctly, as soon as the call gets answered, asterisk CRASHES HARD. If I use a Plycom IP601 to dial over this IAX link it WORKS FINE 100% perfect. and IF I remove the H263 from allowed Codecs. The H263 device will work fine also (its a cip-5500) because it also supports ULAW. A TE110P was ADDED to server "A" to test (removing the IAX from the picture) and the calls via the h263 phone go right over the psnt (obviously voice only) Server "A" is running asterisk-1.2.7.1 (with libpri-1.2.2 and zaptel-1.2.5) Here is my sip.conf for server "A" (and yes I REALIZED I HAVE NO PASSWORD ON MY SIP ACCOUNT this is all internal for testing) [general] videosupport=yes bindport=5060 ; UDP Port to bind to (SIP standard port is bindaddr=0.0.0.0 ; IP address to bind to (0.0.0.0 binds to all) disallow=all allow=ulaw allow=h263 allow=h263p [1234] username=1234 type=friend qualify=yes port=5060 nat=yes host=dynamic dtmfmode=rfc2833 context=from-internal canreinvite=no callerid=Video Phone 1 <1234> HERE IS MY IAX.CONF for SERVER "A" (this is only for OUTGOING CALLS) [general] videosupport=yes bindport = 4569 ; Port to bind to (IAX is 4569) bindaddr = 0.0.0.0 ; Address to bind to (all addresses on machine) disallow=all allow=ulaw allow=h263 allow=h263p mailboxdetail=yes [vcout] username=tnout type=peer secret=XXXXXX qualify=yes host=XXX.XXX.XXX.XXX Here is my IAX.CONF from SERVER "B" (the server that SHOULD dial the PSTN) [tnout] username=tnout secret=XXXXXX type=user host=XXX.XXX.XXX.XXX qualify=yes here is the IAX DEBUG FROM SERVER "B" (IP's REMOVED AND REPLACED WITH XXX) Connected to Asterisk 1.2.7.1 currently running on vc (pid = 6078) Verbosity is at least 20 vc*CLI> iax2 debug IAX2 Debugging Enabled Rx-Frame Retry[ No] -- OSeqno: 000 ISeqno: 000 Type: IAX Subclass: NEW Timestamp: 00012ms SCall: 00002 DCall: 00000 [XXX.XXX.XXX.XXX:4569] VERSION : 2 CALLED NUMBER : 6993320 CODEC_PREFS : (ulaw|h263) CALLING NUMBER : 1234 CALLING PRESNTN : 0 CALLING TYPEOFN : 0 CALLING TRANSIT : 0 CALLING NAME : Video Phone 1 LANGUAGE : en USERNAME : tnout FORMAT : 4 CAPABILITY : 587780 ADSICPE : 2 DATE TIME : 2006-05-07 12:11:06 vc*CLI> Tx-Frame Retry[000] -- OSeqno: 000 ISeqno: 001 Type: IAX Subclass: AUTHREQ Timestamp: 00014ms SCall: 00001 DCall: 00002 [XXX.XXX.XXX.XXX:4569] AUTHMETHODS : 3 CHALLENGE : 948988689 USERNAME : tnout Rx-Frame Retry[ No] -- OSeqno: 001 ISeqno: 001 Type: IAX Subclass: AUTHREP Timestamp: 00020ms SCall: 00002 DCall: 00001 [XXX.XXX.XXX.XXX:4569] MD5 RESULT : ab504a6c0b5438b539adb0923dbcf793 -- Accepting AUTHENTICATED call from XXX.XXX.XXX.XXX: > requested format = ulaw, > requested prefs = (unknown|unknown|unknown), > actual format = ulaw, > host prefs = (ulaw|h263), > priority = mine Tx-Frame Retry[000] -- OSeqno: 001 ISeqno: 002 Type: IAX Subclass: ACCEPT Timestamp: 00015ms SCall: 00001 DCall: 00002 [XXX.XXX.XXX.XXX:4569] FORMAT : 4 -- Executing Dial("IAX2/XXX.XXX.XXX.XXX:4569-1", "ZAP/g1/6993320") in new stack -- Requested transfer capability: 0x00 - SPEECH -- Called g1/6993320 Rx-Frame Retry[ No] -- OSeqno: 002 ISeqno: 002 Type: IAX Subclass: ACK Timestamp: 00015ms SCall: 00002 DCall: 00001 [XXX.XXX.XXX.XXX:4569] Tx-Frame Retry[000] -- OSeqno: 002 ISeqno: 002 Type: VOICE Subclass: 4 Timestamp: 00040ms SCall: 00001 DCall: 00002 [XXX.XXX.XXX.XXX:4569] -- Zap/1-1 is proceeding passing it to IAX2/XXX.XXX.XXX.XXX:4569-1 Tx-Frame Retry[000] -- OSeqno: 003 ISeqno: 002 Type: CONTROL Subclass: (15?) Timestamp: 00043ms SCall: 00001 DCall: 00002 [XXX.XXX.XXX.XXX:4569] Rx-Frame Retry[ No] -- OSeqno: 002 ISeqno: 003 Type: IAX Subclass: ACK Timestamp: 00040ms SCall: 00002 DCall: 00001 [XXX.XXX.XXX.XXX:4569] Rx-Frame Retry[ No] -- OSeqno: 002 ISeqno: 004 Type: IAX Subclass: ACK Timestamp: 00043ms SCall: 00002 DCall: 00001 [XXX.XXX.XXX.XXX:4569] Rx-Frame Retry[ No] -- OSeqno: 002 ISeqno: 004 Type: VOICE Subclass: 4 Timestamp: 00295ms SCall: 00002 DCall: 00001 [XXX.XXX.XXX.XXX:4569] Tx-Frame Retry[-01] -- OSeqno: 004 ISeqno: 003 Type: IAX Subclass: ACK Timestamp: 00295ms SCall: 00001 DCall: 00002 [XXX.XXX.XXX.XXX:4569] -- Zap/1-1 is ringing Tx-Frame Retry[000] -- OSeqno: 004 ISeqno: 003 Type: CONTROL Subclass: RINGING Timestamp: 01403ms SCall: 00001 DCall: 00002 [XXX.XXX.XXX.XXX:4569] Rx-Frame Retry[ No] -- OSeqno: 003 ISeqno: 005 Type: IAX Subclass: ACK Timestamp: 01403ms SCall: 00002 DCall: 00001 [XXX.XXX.XXX.XXX:4569] -- Zap/1-1 answered IAX2/XXX.XXX.XXX.XXX:4569-1 Tx-Frame Retry[000] -- OSeqno: 005 ISeqno: 003 Type: CONTROL Subclass: (255?) Timestamp: 08903ms SCall: 00001 DCall: 00002 [XXX.XXX.XXX.XXX:4569] Tx-Frame Retry[000] -- OSeqno: 006 ISeqno: 003 Type: CONTROL Subclass: ANSWER Timestamp: 08906ms SCall: 00001 DCall: 00002 [XXX.XXX.XXX.XXX:4569] Rx-Frame Retry[ No] -- OSeqno: 003 ISeqno: 006 Type: IAX Subclass: ACK Timestamp: 08903ms SCall: 00002 DCall: 00001 [XXX.XXX.XXX.XXX:4569] Rx-Frame Retry[ No] -- OSeqno: 003 ISeqno: 007 Type: IAX Subclass: ACK Timestamp: 08906ms SCall: 00002 DCall: 00001 [XXX.XXX.XXX.XXX:4569] Rx-Frame Retry[ No] -- OSeqno: 003 ISeqno: 007 Type: IAX Subclass: LAGRQ Timestamp: 10012ms SCall: 00002 DCall: 00001 [XXX.XXX.XXX.XXX:4569] Tx-Frame Retry[000] -- OSeqno: 007 ISeqno: 004 Type: IAX Subclass: LAGRP Timestamp: 10012ms SCall: 00001 DCall: 00002 [XXX.XXX.XXX.XXX:4569] Rx-Frame Retry[ No] -- OSeqno: 004 ISeqno: 008 Type: IAX Subclass: ACK Timestamp: 10012ms SCall: 00002 DCall: 00001 [XXX.XXX.XXX.XXX:4569] Tx-Frame Retry[000] -- OSeqno: 008 ISeqno: 004 Type: IAX Subclass: LAGRQ Timestamp: 10023ms SCall: 00001 DCall: 00002 [XXX.XXX.XXX.XXX:4569] Rx-Frame Retry[ No] -- OSeqno: 004 ISeqno: 009 Type: IAX Subclass: LAGRP Timestamp: 10023ms SCall: 00002 DCall: 00001 [XXX.XXX.XXX.XXX:4569] Tx-Frame Retry[-01] -- OSeqno: 009 ISeqno: 005 Type: IAX Subclass: ACK Timestamp: 10023ms SCall: 00001 DCall: 00002 [XXX.XXX.XXX.XXX:4569] Rx-Frame Retry[ No] -- OSeqno: 005 ISeqno: 009 Type: VIDEO Subclass: 147 Timestamp: 10218ms SCall: 00002 DCall: 00001 [XXX.XXX.XXX.XXX:4569] Tx-Frame Retry[-01] -- OSeqno: 009 ISeqno: 006 Type: IAX Subclass: ACK Timestamp: 10218ms SCall: 00001 DCall: 00002 [XXX.XXX.XXX.XXX:4569] vc*CLI> Disconnected from Asterisk server Executing last minute cleanups I hope this enough information to help debug. Anymore that is needed please advice | ||
Comments: | By: Serge Vecher (serge-v) 2006-05-07 17:55:32 aloha: as per bug guideliness, please provide a backtrace from a core file on server b. Please note, that asterisk needs to be built with 'make dont-optimize' in order for this bt to be useful. thanks By: Aloha Tone (alohatone) 2006-05-08 18:22:53 update to this bug: As requested per "vechers" I did a make clean and then a make dont-optimize on Server "B" to get a bt for the crash. However.... when i build with make dont-optimize asterisk DOES NOT CRASH (sorry about the caps just want to be clear) I was able to maintain a call with the h263 phone FINE (for 10 mins) SO I wanted to recreate the problem. On server "B" I did a make clean and make (normal make) for asterisk and reinstalled BOOM h263 device crashes asterisk! 100% of the time. I recreated this event 10 times in a row to be certain. So I then did a make clean and make dont-optimize AGAIN and reinstalled the new binary and now asterisk will pass the channels just fine (no trouble at all) So the result is I cannot create the crash condition when i do a make dont-optimize. I hope this helps. Please let me know any other information I can give to you All servers are running on Fedora Core 4 and as stated before running: asterisk-1.2.7.1 zaptel-1.2.5 libpri-1.2.2 Thanks again! By: Serge Vecher (serge-v) 2006-05-08 18:35:31 1. downgrading to major, since 'make dont-optimize' workaround is available. 2. there is another bug (7029) in the system with a similar scenario. 3. if you have access to IRC and can provide shell access to a developer, please log onto the #asterisk-dev and ask for help. 4. if possible to test with another distibution, please do that also. Thanks. By: Aloha Tone (alohatone) 2006-05-08 18:55:50 vecher, Thanks for the quick attention. Excuse my ignorance... what does "1. downgrading to major, since 'make dont-optimize'" mean? By: Serge Vecher (serge-v) 2006-05-08 19:02:40 oops, sorry about that -- I didn't even finish the sentence. I've changed the severity of bug from a 'crash' to 'major', since you have confirmed that a workaround for a crash is to build asterisk with 'make dont-optimize' By: Kevin P. Fleming (kpfleming) 2006-05-19 20:03:15 Fixed in branch-1.2 revision 28896 and trunk revision 28903. |