Summary:ASTERISK-03295: Crash in transfer
Reporter:Steve Murphy (murf)Labels:
Date Opened:2005-01-17 23:21:12.000-0600Date Closed:2008-01-15 15:22:19.000-0600
Versions:Frequency of
Environment:Attachments:( 0) crashout2
Description:Incoming call received; the called party hits ASTERISK-694 in attempt to park the call for a transfer to a different line. Asterisk crashes immediately upon recieving the #. Worked up until this update, I THINK. Haven't actually tried to park a call in a week or two.

****** STEPS TO REPRODUCE ******

1. Call comes in, dial() issued to extension.
2. Called party answers, hits # to transfer call.
3. Crash.


Got a stack trace. Compiled source with valgrind.
The reason for the crash is in a call to:

#0  0x00c37831 in zt_indicate (chan=0x88a7ea8, condition=16) at chan_zap.c:4411
4411                            res = pri_notify(p->pri->pri, p->call, p->prioffset, PRI_NOTIFY_REMOTE_HOLD);

and in this case, p->pri is null. The p->pri->pri ref causes a seg fault.
Comments:By: Brian West (bkw918) 2005-01-17 23:27:55.000-0600

Have you recompiled/installed libpri, zaptel and asterisk in that order?


By: Steve Murphy (murf) 2005-01-18 00:14:13.000-0600

No, I did zaptel, then libpri, then asterisk. So, I just redid everything
in this order:

1, cd libpri
2. make clean
3. cvs update
4. make
5. make install

6. cd ../zaptel
7. make clean
8. cvs update
9. make
10. make install

11. rmmod wctdm wcfxo zaptel
12. cd ../asterisk
13. make clean
14. cvs update
15. make valgrind  (it does an install)

16. modprobe wcfxo
17. modprobe wcfxs lowpower=1
18. ztcfg
19. asterisk -cgv
20. (place a call using one extension, out to PSTN via (old) fxo card, back
   into another fxo card on another pstn line, to another extension.
21. On the answered extension, hit #
22. Still crashes.

By: Brian West (bkw918) 2005-01-18 00:18:43.000-0600

i smell an ifdef missing... you don't even need libpri.


By: Steve Murphy (murf) 2005-01-18 00:26:02.000-0600

You are maybe getting warm. I've got 2 fxo cards, and a 4-port fxs card (E/F, think).  That's it. No T1 stuff at all.

By: paradise (paradise) 2005-01-18 00:47:07.000-0600

> 4411 res = pri_notify(p->pri->pri, p->call, p->prioffset, PRI_NOTIFY_REMOTE_HOLD);

this part of code has recently added regarding bug ASTERISK-1815, it seems that it's broken.
do you have the same problem with CVS HEAD before 01/17?

By: Steve Murphy (murf) 2005-01-18 00:56:42.000-0600

Well, I know a few weeks back, that ASTERISK-694 worked OK. Now it doesn't.
Some features are unfortunately not used often enough to nail down
exactly when it broke. But, it could easily be that the new insertion
broke the program, at least for my setup.

By: Steve Murphy (murf) 2005-01-18 00:59:15.000-0600

Arg. I haven't enough experience with the web interface to know that
a pound-sign (or hash) at the beginning of 700 will turn the whole thing
into a link to bug 0000700. Someday I'll figure it out. \ASTERISK-694-- will this
come out ok?

By: Steve Murphy (murf) 2005-01-18 01:16:47.000-0600

Nope. It didn't, obviously. Well, as an experiment, I put

if( p->pri )

before the call to pri_notify, and I don't crash. However, while this might
prevent the crash, I'd be surprised if everything still works ok in regards
to the new feature!

By: Mark Spencer (markster) 2005-01-18 05:33:52.000-0600

Fixed in CVS head.

By: Digium Subversion (svnbot) 2008-01-15 15:22:19.000-0600

Repository: asterisk
Revision: 4831

U   trunk/channels/chan_zap.c

r4831 | markster | 2008-01-15 15:22:18 -0600 (Tue, 15 Jan 2008) | 2 lines

Fix recently introduced zap crash from HOLD/UNHOLD patch (bug ASTERISK-3295)