1. This site uses cookies. By continuing to use this site, you are agreeing to our use of cookies. Learn More.
  2. If you had a PIAF Forum account in the vBulletin days, log in with your old credentials. Otherwise, sign up again and we'll get you back in business as soon as we can.
  3. Guest: We think the problem with locked threads from long message subjects has been resolved. Post a link here if you still see a problem.

TIPS Dahdi maximum channel issue

Discussion in 'Help' started by jarrod1024, Jun 5, 2013.

  1. jarrod1024 New Member

    hello,
    i noticed a problem with my relatively new piaf install today. i have it setup to forward calls to a cellphone if none of the extensions in my ring group answer.

    i currently have 1 dahdi trunk on a sangoma b600de with the max channels set to 1 as it is only one phone line.

    the calls come in on the 1 dahdi trunk and then if noone in the ring group answers it calls the cellphone through the voip.ms trunk (this all works fine)

    Well today we had a call come in that was then transfered to the cellphone by the pbx, one of the employees then tried to make an outgoing call while the cellphone call was still in progress and got a busy signal.

    I would have thought the pbx would know that the dahdi trunk is in use and to send the call out over the next trunk listed in the outbound route (voip.ms) but instead it appears to only try the dahdi trunk.

    I have 1 outbound route for the normal calling with a trunk sequence of:

    1: The dahdi trunk
    2:voip.ms
    3: Vitelity (this is just a backup)

    Do i haveto create 3 seperate outbound routes for this to work?
  2. lgaetz Pundit

    My home system runs exactly the same way, a single POTS line to a B600DE and voip.ms. How did you define your dahdi trunk, it should just be a single channel then you don't need to worry about setting the max channels. I'm pretty sure a busy tone is nothing the PBX generates, I think we will need a snippet of the log at /var/log/asterisk/full of the lines when the busy tone is generated, that should tell you what is going on there.
  3. jarrod1024 New Member

    By defining the dahdi trunk do you mean what i put in the trunk setup for the dahdi identifier? if so i put 1. I dont have access to the pbx right now but i will try to get the logs tommorow.
  4. jarrod1024 New Member

    ok so i recreated the problem and have the log for when i try to make an outgoing call when the call to the cellphone is in progress.

    sorry its kind of long.

    Code:
    [2013-06-06 11:54:37] VERBOSE[11863] app_dial.c: -- SIP/voipms-000000f1 answered DAHDI/1-1
    [2013-06-06 11:54:39] VERBOSE[2229] netsock2.c: == Using SIP RTP TOS bits 184
    [2013-06-06 11:54:39] VERBOSE[2229] netsock2.c: == Using SIP RTP CoS mark 5
    [2013-06-06 11:54:39] VERBOSE[11868] pbx.c: -- Executing [numberdialed@from-internal:1] Macro("SIP/700-000000f2", "user-callerid,LIMIT,") in new stack
    [2013-06-06 11:54:39] VERBOSE[11868] pbx.c: -- Executing [s@macro-user-callerid:1] Set("SIP/700-000000f2", "AMPUSER=700") in new stack
    [2013-06-06 11:54:39] VERBOSE[11868] pbx.c: -- Executing [s@macro-user-callerid:2] GotoIf("SIP/700-000000f2", "0?report") in new stack
    [2013-06-06 11:54:40] VERBOSE[11868] pbx.c: -- Executing [s@macro-user-callerid:3] ExecIf("SIP/700-000000f2", "1?Set(REALCALLERIDNUM=700)") in new stack
    [2013-06-06 11:54:40] VERBOSE[11868] pbx.c: -- Executing [s@macro-user-callerid:4] Set("SIP/700-000000f2", "AMPUSER=700") in new stack
    [2013-06-06 11:54:40] VERBOSE[11868] pbx.c: -- Executing [s@macro-user-callerid:5] Set("SIP/700-000000f2", "AMPUSERCIDNAME=Front-Desk") in new stack
    [2013-06-06 11:54:40] VERBOSE[11868] pbx.c: -- Executing [s@macro-user-callerid:6] GotoIf("SIP/700-000000f2", "0?report") in new stack
    [2013-06-06 11:54:40] VERBOSE[11868] pbx.c: -- Executing [s@macro-user-callerid:7] Set("SIP/700-000000f2", "AMPUSERCID=700") in new stack
    [2013-06-06 11:54:40] VERBOSE[11868] pbx.c: -- Executing [s@macro-user-callerid:8] Set("SIP/700-000000f2", "CALLERID(all)="Front-Desk" <700>") in new stack
    [2013-06-06 11:54:40] VERBOSE[11868] pbx.c: -- Executing [s@macro-user-callerid:9] GotoIf("SIP/700-000000f2", "0?limit") in new stack
    [2013-06-06 11:54:40] VERBOSE[11868] pbx.c: -- Executing [s@macro-user-callerid:10] ExecIf("SIP/700-000000f2", "1?Set(GROUP(concurrency_limit)=700)") in new stack
    [2013-06-06 11:54:40] VERBOSE[11868] pbx.c: -- Executing [s@macro-user-callerid:11] GosubIf("SIP/700-000000f2", "0?sub-ccss,s,1(from-internal,numberdialed)") in new stack
    [2013-06-06 11:54:40] VERBOSE[11868] pbx.c: -- Executing [s@macro-user-callerid:12] ExecIf("SIP/700-000000f2", "0?Set(CHANNEL(language)=)") in new stack
    [2013-06-06 11:54:40] VERBOSE[11868] pbx.c: -- Executing [s@macro-user-callerid:13] GotoIf("SIP/700-000000f2", "1?continue") in new stack
    [2013-06-06 11:54:40] VERBOSE[11868] pbx.c: -- Goto (macro-user-callerid,s,26)
    [2013-06-06 11:54:40] VERBOSE[11868] pbx.c: -- Executing [s@macro-user-callerid:26] Set("SIP/700-000000f2", "CALLERID(number)=700") in new stack
    [2013-06-06 11:54:40] VERBOSE[11868] pbx.c: -- Executing [s@macro-user-callerid:27] Set("SIP/700-000000f2", "CALLERID(name)=Front-Desk") in new stack
    [2013-06-06 11:54:40] VERBOSE[11868] pbx.c: -- Executing [s@macro-user-callerid:28] Set("SIP/700-000000f2", "CHANNEL(language)=en") in new stack
    [2013-06-06 11:54:40] VERBOSE[11868] pbx.c: -- Executing [numberdialed@from-internal:2] Set("SIP/700-000000f2", "MOHCLASS=default") in new stack
    [2013-06-06 11:54:40] VERBOSE[11868] pbx.c: -- Executing [numberdialed@from-internal:3] ExecIf("SIP/700-000000f2", "1?Set(TRUNKCIDOVERRIDE=calleridnumber)") in new stack
    [2013-06-06 11:54:40] VERBOSE[11868] pbx.c: -- Executing [numberdialed@from-internal:4] Set("SIP/700-000000f2", "_NODEST=") in new stack
    [2013-06-06 11:54:40] VERBOSE[11868] pbx.c: -- Executing [numberdialed@from-internal:5] Gosub("SIP/700-000000f2", "sub-record-check,s,1(out,numberdialed,)") in new stack
    [2013-06-06 11:54:40] VERBOSE[11868] pbx.c: -- Executing [s@sub-record-check:1] GotoIf("SIP/700-000000f2", "1?check") in new stack
    [2013-06-06 11:54:40] VERBOSE[11868] pbx.c: -- Goto (sub-record-check,s,6)
    [2013-06-06 11:54:40] VERBOSE[11868] pbx.c: -- Executing [s@sub-record-check:6] Set("SIP/700-000000f2", "__MON_FMT=wav") in new stack
    [2013-06-06 11:54:40] VERBOSE[11868] pbx.c: -- Executing [s@sub-record-check:7] GotoIf("SIP/700-000000f2", "1?next") in new stack
    [2013-06-06 11:54:40] VERBOSE[11868] pbx.c: -- Goto (sub-record-check,s,10)
    [2013-06-06 11:54:40] VERBOSE[11868] pbx.c: -- Executing [s@sub-record-check:10] ExecIf("SIP/700-000000f2", "0?Return()") in new stack
    [2013-06-06 11:54:40] VERBOSE[11868] pbx.c: -- Executing [s@sub-record-check:11] GotoIf("SIP/700-000000f2", "0?out,1") in new stack
    [2013-06-06 11:54:40] VERBOSE[11868] pbx.c: -- Executing [s@sub-record-check:12] Set("SIP/700-000000f2", "__REC_STATUS=INITIALIZED") in new stack
    [2013-06-06 11:54:40] VERBOSE[11868] pbx.c: -- Executing [s@sub-record-check:13] ExecIf("SIP/700-000000f2", "0?Set(__REC_POLICY_MODE=)") in new stack
    [2013-06-06 11:54:40] VERBOSE[11868] pbx.c: -- Executing [s@sub-record-check:14] Set("SIP/700-000000f2", "NOW=1370537680") in new stack
    [2013-06-06 11:54:40] VERBOSE[11868] pbx.c: -- Executing [s@sub-record-check:15] Set("SIP/700-000000f2", "__DAY=06") in new stack
    [2013-06-06 11:54:40] VERBOSE[11868] pbx.c: -- Executing [s@sub-record-check:16] Set("SIP/700-000000f2", "__MONTH=06") in new stack
    [2013-06-06 11:54:40] VERBOSE[11868] pbx.c: -- Executing [s@sub-record-check:17] Set("SIP/700-000000f2", "__YEAR=2013") in new stack
    [2013-06-06 11:54:40] VERBOSE[11868] pbx.c: -- Executing [s@sub-record-check:18] Set("SIP/700-000000f2", "__TIMESTR=20130606-115440") in new stack
    [2013-06-06 11:54:40] VERBOSE[11868] pbx.c: -- Executing [s@sub-record-check:19] Set("SIP/700-000000f2", "__FROMEXTEN=700") in new stack
    [2013-06-06 11:54:40] VERBOSE[11868] pbx.c: -- Executing [s@sub-record-check:20] Set("SIP/700-000000f2", "__CALLFILENAME=out-numberdialed-700-20130606-115440-1370537679.464") in new stack
    [2013-06-06 11:54:40] VERBOSE[11868] pbx.c: -- Executing [s@sub-record-check:21] Goto("SIP/700-000000f2", "out,1") in new stack
    [2013-06-06 11:54:40] VERBOSE[11868] pbx.c: -- Goto (sub-record-check,out,1)
    [2013-06-06 11:54:40] VERBOSE[11868] pbx.c: -- Executing [out@sub-record-check:1] ExecIf("SIP/700-000000f2", "1?Set(__REC_POLICY_MODE=dontcare)") in new stack
    [2013-06-06 11:54:40] VERBOSE[11868] pbx.c: -- Executing [out@sub-record-check:2] GosubIf("SIP/700-000000f2", "0?record,1(exten,numberdialed,700)") in new stack
    [2013-06-06 11:54:40] VERBOSE[11868] pbx.c: -- Executing [out@sub-record-check:3] Return("SIP/700-000000f2", "") in new stack
    [2013-06-06 11:54:40] VERBOSE[11868] pbx.c: -- Executing [numberdialed@from-internal:6] Macro("SIP/700-000000f2", "dialout-trunk,1,numberdialed,") in new stack
     
    
  5. jarrod1024 New Member

    Code:
    [2013-06-06 11:54:40] VERBOSE[11868] pbx.c: -- Executing [s@macro-dialout-trunk:1] Set("SIP/700-000000f2", "DIAL_TRUNK=1") in new stack
    [2013-06-06 11:54:40] VERBOSE[11868] pbx.c: -- Executing [s@macro-dialout-trunk:2] GosubIf("SIP/700-000000f2", "0?sub-pincheck,s,1()") in new stack
    [2013-06-06 11:54:40] VERBOSE[11868] pbx.c: -- Executing [s@macro-dialout-trunk:3] GotoIf("SIP/700-000000f2", "0?disabletrunk,1") in new stack
    [2013-06-06 11:54:40] VERBOSE[11868] pbx.c: -- Executing [s@macro-dialout-trunk:4] Set("SIP/700-000000f2", "DIAL_NUMBER=numberdialed") in new stack
    [2013-06-06 11:54:40] VERBOSE[11868] pbx.c: -- Executing [s@macro-dialout-trunk:5] Set("SIP/700-000000f2", "DIAL_TRUNK_OPTIONS=tr") in new stack
    [2013-06-06 11:54:40] VERBOSE[11868] pbx.c: -- Executing [s@macro-dialout-trunk:6] Set("SIP/700-000000f2", "OUTBOUND_GROUP=OUT_1") in new stack
    [2013-06-06 11:54:40] VERBOSE[11868] pbx.c: -- Executing [s@macro-dialout-trunk:7] GotoIf("SIP/700-000000f2", "0?nomax") in new stack
    [2013-06-06 11:54:40] VERBOSE[11868] pbx.c: -- Executing [s@macro-dialout-trunk:8] GotoIf("SIP/700-000000f2", "0?chanfull") in new stack
    [2013-06-06 11:54:40] VERBOSE[11868] pbx.c: -- Executing [s@macro-dialout-trunk:9] GotoIf("SIP/700-000000f2", "0?skipoutcid") in new stack
    [2013-06-06 11:54:40] VERBOSE[11868] pbx.c: -- Executing [s@macro-dialout-trunk:10] Set("SIP/700-000000f2", "DIAL_TRUNK_OPTIONS=") in new stack
    [2013-06-06 11:54:40] VERBOSE[11868] pbx.c: -- Executing [s@macro-dialout-trunk:11] Macro("SIP/700-000000f2", "outbound-callerid,1") in new stack
    [2013-06-06 11:54:40] VERBOSE[11868] pbx.c: -- Executing [s@macro-outbound-callerid:1] ExecIf("SIP/700-000000f2", "0?Set(CALLERPRES()=)") in new stack
    [2013-06-06 11:54:40] VERBOSE[11868] pbx.c: -- Executing [s@macro-outbound-callerid:2] ExecIf("SIP/700-000000f2", "0?Set(REALCALLERIDNUM=700)") in new stack
    [2013-06-06 11:54:40] VERBOSE[11868] pbx.c: -- Executing [s@macro-outbound-callerid:3] GotoIf("SIP/700-000000f2", "1?normcid") in new stack
    [2013-06-06 11:54:40] VERBOSE[11868] pbx.c: -- Goto (macro-outbound-callerid,s,6)
    [2013-06-06 11:54:40] VERBOSE[11868] pbx.c: -- Executing [s@macro-outbound-callerid:6] Set("SIP/700-000000f2", "USEROUTCID=") in new stack
    [2013-06-06 11:54:40] VERBOSE[11868] pbx.c: -- Executing [s@macro-outbound-callerid:7] Set("SIP/700-000000f2", "EMERGENCYCID=") in new stack
    [2013-06-06 11:54:40] VERBOSE[11868] pbx.c: -- Executing [s@macro-outbound-callerid:8] Set("SIP/700-000000f2", "TRUNKOUTCID=") in new stack
    [2013-06-06 11:54:40] VERBOSE[11868] pbx.c: -- Executing [s@macro-outbound-callerid:9] GotoIf("SIP/700-000000f2", "1?trunkcid") in new stack
    [2013-06-06 11:54:40] VERBOSE[11868] pbx.c: -- Goto (macro-outbound-callerid,s,12)
    [2013-06-06 11:54:40] VERBOSE[11868] pbx.c: -- Executing [s@macro-outbound-callerid:12] ExecIf("SIP/700-000000f2", "0?Set(CALLERID(all)=)") in new stack
    [2013-06-06 11:54:40] VERBOSE[11868] pbx.c: -- Executing [s@macro-outbound-callerid:13] ExecIf("SIP/700-000000f2", "0?Set(CALLERID(all)=)") in new stack
    [2013-06-06 11:54:40] VERBOSE[11868] pbx.c: -- Executing [s@macro-outbound-callerid:14] ExecIf("SIP/700-000000f2", "1?Set(CALLERID(all)=pstncallerid)") in new stack
    [2013-06-06 11:54:40] VERBOSE[11868] pbx.c: -- Executing [s@macro-outbound-callerid:15] ExecIf("SIP/700-000000f2", "0?Set(CALLERPRES()=prohib_passed_screen)") in new stack
    [2013-06-06 11:54:40] VERBOSE[11868] pbx.c: -- Executing [s@macro-dialout-trunk:12] GosubIf("SIP/700-000000f2", "0?sub-flp-1,s,1()") in new stack
    [2013-06-06 11:54:40] VERBOSE[11868] pbx.c: -- Executing [s@macro-dialout-trunk:13] Set("SIP/700-000000f2", "OUTNUM=numberdialed") in new stack
    [2013-06-06 11:54:40] VERBOSE[11868] pbx.c: -- Executing [s@macro-dialout-trunk:14] Set("SIP/700-000000f2", "custom=DAHDI/1") in new stack
    [2013-06-06 11:54:40] VERBOSE[11868] pbx.c: -- Executing [s@macro-dialout-trunk:15] ExecIf("SIP/700-000000f2", "0?Set(DIAL_TRUNK_OPTIONS=M(setmusic^default))") in new stack
    [2013-06-06 11:54:40] VERBOSE[11868] pbx.c: -- Executing [s@macro-dialout-trunk:16] ExecIf("SIP/700-000000f2", "0?Set(DIAL_TRUNK_OPTIONS=M(confirm))") in new stack
    [2013-06-06 11:54:40] VERBOSE[11868] pbx.c: -- Executing [s@macro-dialout-trunk:17] Macro("SIP/700-000000f2", "dialout-trunk-predial-hook,") in new stack
    [2013-06-06 11:54:40] VERBOSE[11868] pbx.c: -- Executing [s@macro-dialout-trunk-predial-hook:1] MacroExit("SIP/700-000000f2", "") in new stack
    [2013-06-06 11:54:40] VERBOSE[11868] pbx.c: -- Executing [s@macro-dialout-trunk:18] GotoIf("SIP/700-000000f2", "0?bypass,1") in new stack
    [2013-06-06 11:54:40] VERBOSE[11868] pbx.c: -- Executing [s@macro-dialout-trunk:19] ExecIf("SIP/700-000000f2", "1?Set(CONNECTEDLINE(num,i)=numberdialed)") in new stack
    [2013-06-06 11:54:40] VERBOSE[11868] pbx.c: -- Executing [s@macro-dialout-trunk:20] ExecIf("SIP/700-000000f2", "1?Set(CONNECTEDLINE(name,i)=CID:pstncallerid)") in new stack
    [2013-06-06 11:54:40] VERBOSE[11868] pbx.c: -- Executing [s@macro-dialout-trunk:21] GotoIf("SIP/700-000000f2", "0?customtrunk") in new stack
    [2013-06-06 11:54:40] VERBOSE[11868] pbx.c: -- Executing [s@macro-dialout-trunk:22] Dial("SIP/700-000000f2", "DAHDI/1/numberdialed,300,") in new stack
    [2013-06-06 11:54:40] WARNING[11868] app_dial.c: Unable to create channel of type 'DAHDI' (cause 17 - User busy)
    [2013-06-06 11:54:40] VERBOSE[11868] app_dial.c: == Everyone is busy/congested at this time (1:1/0/0)
    [2013-06-06 11:54:40] VERBOSE[11868] pbx.c: -- Executing [s@macro-dialout-trunk:23] NoOp("SIP/700-000000f2", "Dial failed for some reason with DIALSTATUS = BUSY and HANGUPCAUSE = 17") in new stack
    [2013-06-06 11:54:40] VERBOSE[11868] pbx.c: -- Executing [s@macro-dialout-trunk:24] Goto("SIP/700-000000f2", "s-BUSY,1") in new stack
    [2013-06-06 11:54:40] VERBOSE[11868] pbx.c: -- Goto (macro-dialout-trunk,s-BUSY,1)
    [2013-06-06 11:54:40] VERBOSE[11868] pbx.c: -- Executing [s-BUSY@macro-dialout-trunk:1] NoOp("SIP/700-000000f2", "Dial failed due to trunk reporting BUSY - giving up") in new stack
    [2013-06-06 11:54:40] VERBOSE[11868] pbx.c: -- Executing [s-BUSY@macro-dialout-trunk:2] PlayTones("SIP/700-000000f2", "busy") in new stack
    [2013-06-06 11:54:40] VERBOSE[11868] pbx.c: -- Executing [s-BUSY@macro-dialout-trunk:3] Busy("SIP/700-000000f2", "20") in new stack
    [2013-06-06 11:54:40] VERBOSE[11868] app_macro.c: == Spawn extension (macro-dialout-trunk, s-BUSY, 3) exited non-zero on 'SIP/700-000000f2' in macro 'dialout-trunk'
    [2013-06-06 11:54:40] VERBOSE[11868] pbx.c: == Spawn extension (from-internal, numberdialed, 6) exited non-zero on 'SIP/700-000000f2'
    [2013-06-06 11:54:40] VERBOSE[11868] pbx.c: -- Executing [h@from-internal:1] Hangup("SIP/700-000000f2", "") in new stack
    [2013-06-06 11:54:40] VERBOSE[11868] pbx.c: == Spawn extension (from-internal, h, 1) exited non-zero on 'SIP/700-000000f2'
    [2013-06-06 11:54:44] NOTICE[2229] chan_sip.c: Peer 'voipms' is now Reachable. (54ms / 2000ms)
    [2013-06-06 11:54:47] VERBOSE[11863] pbx.c: -- Executing [h@macro-dialout-trunk:1] Macro("DAHDI/1-1", "hangupcall,") in new stack
    [2013-06-06 11:54:47] VERBOSE[11863] pbx.c: -- Executing [s@macro-hangupcall:1] GotoIf("DAHDI/1-1", "1?theend") in new stack
    [2013-06-06 11:54:47] VERBOSE[11863] pbx.c: -- Goto (macro-hangupcall,s,3)
    [2013-06-06 11:54:47] VERBOSE[11863] pbx.c: -- Executing [s@macro-hangupcall:3] ExecIf("DAHDI/1-1", "0?Set(CDR(recordingfile)=)") in new stack
    [2013-06-06 11:54:47] VERBOSE[11863] pbx.c: -- Executing [s@macro-hangupcall:4] Hangup("DAHDI/1-1", "") in new stack
    [2013-06-06 11:54:47] VERBOSE[11863] app_macro.c: == Spawn extension (macro-hangupcall, s, 4) exited non-zero on 'DAHDI/1-1' in macro 'hangupcall'
    [2013-06-06 11:54:47] VERBOSE[11863] features.c: == Spawn extension (macro-dialout-trunk, h, 1) exited non-zero on 'DAHDI/1-1'
    [2013-06-06 11:54:47] VERBOSE[11863] app_macro.c: == Spawn extension (macro-dialout-trunk, s, 22) exited non-zero on 'DAHDI/1-1' in macro 'dialout-trunk'
    [2013-06-06 11:54:47] VERBOSE[11863] pbx.c: == Spawn extension (from-internal, 253cellphonecallsgetransferredto, 5) exited non-zero on 'DAHDI/1-1'
    [2013-06-06 11:54:47] VERBOSE[11863] sig_analog.c: -- Hanging up on 'DAHDI/1-1'
    [2013-06-06 11:54:47] VERBOSE[11863] chan_dahdi.c: -- Hungup 'DAHDI/1-1'
     
    
  6. jarrod1024 New Member

    this is the busy part but it doesnt really seem to tell me why it is busy instead of just using another channel.
  7. rossiv Guru

    It certainly does tell you why. "HANGUPCAUSE = 17"
    Simple google says that means "define AST_CAUSE_USER_BUSY"
    So something is ringing busy.
  8. islandtech New Member

    Dialed number manipulation rules set correctly for the trunk?
  9. jarrod1024 New Member

    Im just not to sure if the dahdi trunk is returning the busy signal (it would if it it trying to use it because the 1 pstn line connected to the system is in use) or if voip.ms is returning it.

    I don't have anything in the dialed number manipulation rules but i have tried changing the trunk priority for the outbound route to voip.ms first and i could dial out on the voip.ms trunk as long as there isn't a call currently transferred to the cellphone.
  10. jarrod1024 New Member

    With one outbound route will PIAF automatically goto the next trunk in the list if all the channels on the first one are used up or do you need more than one outbound route for that?
  11. LesD Member

    I vaguely remember when I played around with a Dahdi trunk that there was subtle difference in behaviour between defining a single line trunk by its group or channel number.
  12. leemason Guru

    Yes I think it would be best to use DAHDI/g1 in the trunk definition and not just DAHDI/1. However the problem is also that inbound calls are not counted against the usage count set in the trunk definition.

Share This Page