Summary: | ASTERISK-14120: 1.6.1/DAHDI: No outgoing analogue calls possible | ||
Reporter: | reinerotto (reinerotto) | Labels: | |
Date Opened: | 2009-05-13 15:34:19 | Date Closed: | 2011-06-07 14:08:04 |
Priority: | Minor | Regression? | No |
Status: | Closed/Complete | Components: | Channels/chan_dahdi |
Versions: | Frequency of Occurrence | ||
Related Issues: | |||
Environment: | Attachments: | ||
Description: | Hi, I can call from analogue phone to SIP-phone, I can receive inbound calls on analogue phone, but can not do outbound analog calls. That outgoing calls do not work, only happens when dahdi+asterisk are loaded during boot-up on my OpenSuSE 11.1 system. When asterisk+dahdi are started by hand, no problem ! So, first of all I disabled "Parallel Execution" of start-up scripts for the services during boot, to start all services in serial. SuSE by default starts services, which do not depend upon each others, in parallel within the same run-level. Second, I made shure, that dahdi is started "far erlier" than asterisk. Third, I used the "Last Weapon of a desperate Programmer" (who suspects a timing problem; I am a programming-dinosaur myself, never needed to use it permanently): I introduced some time-delay in /etc/init.d/asterisk. Below you see this in more detail. And now it works. But that means, there is still a race-condition/timing issue/load-problem etc. during start-up of dahdi and asterisk after boot. Which I also had using asterisk/zaptel, but did not report. asterisk -vvvvvvvvvr, when trying to do analogue call from phone to PSTN: ....... -- Starting simple switch on 'DAHDI/2-1' -- Executing [470555@to_analog_phone:1] Dial("DAHDI/2-1", "dahdi/1/470555,10,tTm") in new stack [May 13 19:10:10] WARNING[6461]: app_dial.c:1518 dial_exec_full: Unable to create channel of type 'dahdi' (cause 0 - Unknown) == Everyone is busy/congested at this time (1:0/0/1) -- Executing [470555@to_analog_phone:2] VoiceMail("DAHDI/2-1", "100") in new stack -- <DAHDI/2-1> Playing 'vm-intro.gsm' (language 'ru') == Spawn extension (to_analog_phone, 470555, 2) exited non-zero on 'DAHDI/2-1' -- Hungup 'DAHDI/2-1' ****** ADDITIONAL INFORMATION ****** dahdi show channels Chan Extension Context Language MOH Interpret Blocked State pseudo default default In Service 1 to_UKRTelcom ru default In Service 2 to_analog_phone ru default In Service Gateway-Niko*CLI> Excerpt from extensions.conf: [to_analog_phone] exten => _00X.,1,Dial(SIP/${EXTEN:2}@bellshare,30,tr) exten => _00X.,2,hangup() exten => _8X.,1,Dial(SIP/${EXTEN:1}@bellshare,30,trg) exten => _999X.,1,SetCallerID("023658568281") exten => _999X.,2,Dial(SIP/${EXTEN:4}@GSM-Gateway,60,r) exten => _999X.,3,hangUp() exten => 2001,1,Dial(SIP/Tanyusha2,20) exten => 2001,2,Voicemail(2001) exten => 2001,3,hangUp() exten => _X.,1,Dial(dahdi/1/${EXTEN},10,tTm) exten => _X.,2,Voicemail(100) exten => _X.,3,hangUp() Gateway-Niko*CLI> dahdi show channel 1 Channel: 1ko*CLI> File Descriptor: 10 Span: 1 Extension: Dialing: no Context: to_UKRTelcom Caller ID: 0 Calling TON: 0 Caller ID name: PSTN Mailbox: none Destroy: 0 InAlarm: 0 Signalling Type: FXS Kewlstart Radio: 0 Owner: <None> Real: <None> Callwait: <None> Threeway: <None> Confno: -1 Propagated Conference: -1 Real in conference: 0 DSP: no Busy Detection: yes Busy Count: 10 Busy Pattern: 0,0 TDD: no Relax DTMF: no Dialing/CallwaitCAS: 0/0 Default law: ulaw Fax Handled: no Pulse phone: no DND: no Echo Cancellation: 128 taps (unless TDM bridged) currently OFF Actual Confinfo: Num/0, Mode/0x0000 Actual Confmute: No Hookstate (FXS only): Onhook # Autogenerated by /usr/sbin/dahdi_genconf on Sat May 9 22:34:41 2009 -- do not hand edit # Dahdi Configuration File # # This file is parsed by the Dahdi Configurator, dahdi_cfg # # Span 1: WCTDM/4 "Wildcard TDM400P REV E/F Board 5" (MASTER) fxsks=1 echocanceller=mg2,1 fxoks=2 echocanceller=mg2,2 # channel 3, WCTDM/4/2, no module. # channel 4, WCTDM/4/3, no module. # Global data loadzone = ru defaultzone = ru ~ Gateway-Niko:~ # lsdahdi ### Span 1: WCTDM/4 "Wildcard TDM400P REV E/F Board 5" (MASTER) 1 FXS FXSKS (In use) (EC: MG2) 2 FXO FXOKS (In use) (EC: MG2) ------------------------------- It works, in case of sequential execution of the startup-scripts Gateway-Niko:~ # ls /etc/init.d/rc3.d K01SuSEfirewall2_setup K02kbd S05splash_early K01apache2 K02network-remotefs S07kbd K01asterisk K02ntp S08alsasound K01auditd K02postfix S08avahi-daemon K01cron K03boot.clock S08clamd K01dhcpd K03haldaemon S08dahdi K01java.binfmt_misc K03named S08java.binfmt_misc K01privoxyd K06rpcbind S08network-remotefs K01random K07syslog S08privoxyd K01rpmconfigcheck K08earlysyslog S08rpmconfigcheck K01smb K08network S08sshd K01splash K09SuSEfirewall2_init S09named K01splash_early K09dbus S09splash K01squid S01SuSEfirewall2_init S10ntp K01sshd S01acpid S11cups K01stopblktrace S01dbus S11dhcpd K01tb-p S01earlysyslog S11postfix K01xinetd S01fbset S11xinetd K02acpid S01random S12apache2 K02alsasound S01tb-p S13cron K02avahi-daemon S02haldaemon S13smb K02clamd S02network S13squid K02cups S03syslog S14dansguardian K02dahdi S04boot.clock S15asterisk K02dansguardian S05auditd S16SuSEfirewall2_setup K02fbset S05rpcbind S16stopblktrace Gateway-Niko:~ # ------------------------------------------ AND A TIME-DELAY: ----------------------------- /etc/init.d/asterisk: #!/bin/sh #set -x # # asterisk Starts, Stops and Reloads Asterisk. # ### BEGIN INIT INFO # Provides: asterisk # Required-Start: dahdi $network $named dansguardian # Required-Stop: # Default-Start: 3 5 # Default-Stop: 0 1 2 4 6 # Description: Asterisk Phone System, using DAHDI ### END INIT INFO # Source function library. . /lib/lsb/init-functions if ! [ -x /usr/sbin/asterisk ] ; then echo "ERROR: /usr/sbin/asterisk not found" exit 5 fi if ! [ -d /etc/asterisk ] ; then echo "ERROR: /etc/asterisk directory not found" exit 5 fi . /etc/rc.status # Reset status of this service rc_reset # Full path to asterisk binary DAEMON=/usr/sbin/asterisk # Full path to safe_asterisk script SAFE_ASTERISK=/usr/sbin/safe_asterisk RETVAL=0 case "$1" in start) # Start daemons. echo -n "Starting asterisk phone system " # Check if Asterisk is already running. If it is, then bug out, because # starting Asterisk when Asterisk is already running is very bad. VERSION=`/usr/sbin/asterisk -rx 'core show version'` if [ "`echo $VERSION | cut -c 1-8`" = "Asterisk" ]; then # echo "Asterisk is already running. $0 will exit now." rc_status -v exit fi if [ -f $SAFE_ASTERISK ] ; then DAEMON=$SAFE_ASTERISK fi if [ $AST_USER ] ; then ASTARGS="-U $AST_USER" fi if [ $AST_GROUP ] ; then ASTARGS="`echo $ASTARGS` -G $AST_GROUP" fi #RKA+: Give dahdi_cfg and DNS some more time to complete .. #RKA- Should not be necessary any more, #because we force asterisk to be loaded after dansguardian, # so to be almost the last one. #Sorry, I was wrong, still necessary .... #---------------- sleep 5s #--------------- $DAEMON $ASTARGS [ $RETVAL -eq 0 ] && touch /var/lock/subsys/asterisk rc_status -v ;; stop) # Stop daemons. echo -n $"Shutting down asterisk: " killproc asterisk > /dev/null [ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/asterisk rc_status -v ;; restart) "$0" stop "$0" start rc_status -v ;; reload) $DAEMON -rx 'reload' > /dev/null 2> /dev/null rc_status -v ;; status) #RKA+ echo -n "Checking for asterisk " [ -f /var/lock/subsys/asterisk ] rc_status -v #RKA- status asterisk ;; *) echo "Usage: asterisk {start|stop|restart|reload|condrestart|status}" exit 1 ;; esac rc_exit | ||
Comments: | By: Leif Madsen (lmadsen) 2009-07-27 15:05:01 This looks like a support request. Please use the asterisk-users mailing list for this kind of support. Thanks! |