Questions About Extension.conf

Home » Asterisk Users » Questions About Extension.conf
Asterisk Users 8 Comments

Hello

I have been reading the sample extension.conf

;#######################

[outbound-freenum2]
; This is the handler which performs the dialing logic. It is called
; from the [outbound-freenum] context
;
exten => _X!,1,Verbose(2,Performing ISN lookup for ${EXTEN})
same => n,Set(SUFFIX=${CUT(EXTEN,*,2-)}) ; make sure the suffix is all digits as well same => n,GotoIf($[“${FILTER(0-9,${SUFFIX})}” != “${SUFFIX}”]?fn-CONGESTION,1)
; filter out bad characters per the README-SERIOUSLY.best-practices.txt document same => n,Set(TIMEOUT(absolute)=10800)
same => n,Set(isnresult=${ENUMLOOKUP(${EXTEN},sip,,1,freenum.org)}) ; perform our lookup with freenum.org same => n,GotoIf($[“${isnresult}” != “”]?from)
same => n,Set(DIALSTATUS=CONGESTION)
same => n,Goto(fn-CONGESTION,1)
same => n(from),Set(__SIPFROMUSER=${CALLERID(num)})
same => n,GotoIf($[“${GLOBAL(FREENUMDOMAIN)}” = “”]?dial) ; check if we set the FREENUMDOMAIN global variable in [global]
same => n,Set(__SIPFROMDOMAIN=${GLOBAL(FREENUMDOMAIN)}) ; if we did set it, then we’ll use it for our outbound dialing domain same => n(dial),Dial(SIP/${isnresult},40)
same => n,Goto(fn-${DIALSTATUS},1)

exten => fn-BUSY,1,Busy()

exten => _f[n]-.,1,NoOp(ISN: ${DIALSTATUS})
same => n,Congestion()

;##########################

According to “http://www.voip-info.org/wiki/view/Asterisk+config+extensions.conf”

“Syntax for defining a context: keywords exten, include, ignorepat and switch.” “same is not mentioned in this wiki.”

There is a part of dial plan from sample extension.conf above. My Question is how “same =>” key word works .

Thanks

8 thoughts on - Questions About Extension.conf

  • It is self explanatory, for example:

    exten => _X.,1, Noop(“Let say we have allowed all numbers i.e. _X means and . specifies any range”)
    same => n,NoOp(“Here we have skipped mentioning dial-pattern again and thats it”)

    Hope I have answered your question.

  • As I understand it, same => is a way to shorthand your list of the other keywords. In the example you posted, you save 4 keystrokes for each line you enter; not a lot of savings for this short example, but put it in a 1000+
    line dialplan and it’s quite a time-saver.

    From: asterisk-users-bounces@lists.digium.com
    [mailto:asterisk-users-bounces@lists.digium.com] On Behalf Of Shitian Long Sent: Thursday, November 29, 2012 10:40 AM
    To: Asterisk Users Mailing List – Non-Commercial Discussion Subject: [asterisk-users] Questions about extension.conf

    Hello

    I have been reading the sample extension.conf

    ;#######################

    [outbound-freenum2]

    ; This is the handler which performs the dialing logic. It is called

    ; from the [outbound-freenum] context

    ;

    exten => _X!,1,Verbose(2,Performing ISN lookup for ${EXTEN})

    same => n,Set(SUFFIX=${CUT(EXTEN,*,2-)}) ;
    make sure the suffix is all digits as well

    same => n,GotoIf($[“${FILTER(0-9,${SUFFIX})}” !”${SUFFIX}”]?fn-CONGESTION,1)

    ;
    filter out bad characters per the README-SERIOUSLY.best-practices.txt document

    same => n,Set(TIMEOUT(absolute)800)

    same => n,Set(isnresult=${ENUMLOOKUP(${EXTEN},sip,,1,freenum.org)}) ;
    perform our lookup with freenum.org

    same => n,GotoIf($[“${isnresult}” != “”]?from)

    same => n,Set(DIALSTATUS=CONGESTION)

    same => n,Goto(fn-CONGESTION,1)

    same => n(from),Set(__SIPFROMUSER=${CALLERID(num)})

    same => n,GotoIf($[“${GLOBAL(FREENUMDOMAIN)}” = “”]?dial) ;
    check if we set the FREENUMDOMAIN global variable in [global]

    same => n,Set(__SIPFROMDOMAIN=${GLOBAL(FREENUMDOMAIN)}) ;
    if we did set it, then we’ll use it for our outbound dialing domain

    same => n(dial),Dial(SIP/${isnresult},40)

    same => n,Goto(fn-${DIALSTATUS},1)

    exten => fn-BUSY,1,Busy()

    exten => _f[n]-.,1,NoOp(ISN: ${DIALSTATUS})

    same => n,Congestion()

    ;##########################

    According to
    “http://www.voip-info.org/wiki/view/Asterisk+config+extensions.conf”

    “Syntax for defining a context: keywords exten, include, ignorepat and switch.” “same is not mentioned in this wiki.”

    There is a part of dial plan from sample extension.conf above. My Question is how “same =>” key word works .

    Thanks

  • Shitian Long wrote 29.11.2012 18:40:

    plan from sample extension.conf above. My Question is how “same =>” key word works .

    “same” is used for complex templates, if you don’t want to copy previous line or afraid you can make a typo.

    exten
    => _1XXNXXX,1,Answer

    same => n,HangUp

    is the substitution for:

    exten => _1XXNXXX,1,Answer

    exten => _1XXNXXX,n,HangUp

    Also, it makes grepping the particular exten in a file a lot easier, and if you want to change some template for exten which has 50 lines, you don’t have to edit all 50 of them.

  • Not for me. What part of those lines and comments discusses “same”?

    What is the syntax for a “same” line? what does it mean to use “same”
    rather than “exten”?

  • Excellent. It appears that Getting Started has a lot more stuff in it than the documentation for 1.8.

    Very helpful.

    Ron