Kanuri, Seshu
2004-Jul-19 15:19 UTC
[Asterisk-Users] (Asterisk-Users] Affordable SIP Phone - Stiil a Myth?
Steve, Here is the config, I pulled from my server, that works with D'Link Phones: Main Menu -------------------------------------------------------------------------------- SIP.CONF [general] port = 5060 ; Port to bind to (SIP is 5060) ;bindaddr = 0.0.0.0 ; Address to bind to (all addresses on machine) bindaddr = 67.109.153.236 disallow=all ;allow=ilbc allow=gsm allow=ulaw allow=alaw allow=g729 ;allow=g723 jitterbuffer=no localnet=192.168.0.0/255.255.0.0; All RFC 1918 addresses are local networks localnet=10.0.0.0/255.0.0.0 ; Also RFC1918 localnet=172.16.0.0/12 ; Another RFC1918 with CIDR notation localnet=169.254.0.0/255.255.0.0 ;Zero conf local network context = bogon-calls ; Send SIP callers that we don't know about here [2000] type=friend ; This device takes and makes calls username=2000 ; Username on device secret=2000 ; Password for device host=dynamic ; This host is not on the same IP addr every time context=from-sip ; Inbound calls from this host go here mailbox=100 ; Activate the message waiting light if this ;dtmfmod=inband ; voicemailbox has messages in it reinvite=no canreinvite=no nat=yes qualify=4000 callerid=Mr. Mirchandani <2000> [2001] ; Duplicate of 2000, except with different auth data type=friend username=2001 secret=2001 host=dynamic context=from-sip mailbox=101 ;dtmfmod=inband nat=yes reinvite=no canreinvite=no callerid=Mr. Mandar <2001> [2002] type=friend host=dynamic callerid=William Suffill <2002> username=2002 secret=2002 context=from-sip nat=yes mailbox=2002 [2003] ; Duplicate of 2000, except with different auth data type=friend username=2003 secret=2003 host=dynamic context=from-sip mailbox=103 ;dtmfmod=inband reinvite=no canreinvite=no callerid=Mr.Seshu <2003> [2004] ; Duplicate of 2000, except with different auth data type=friend username=2004 ;secret=2004 secret=2004 host=dynamic context=from-sip mailbox=103 ;dtmfmod=inband reinvite=no canreinvite=no nat=yes callerid=D-link ID1 <2004> [2005] ; Duplicate of 2000, except with different auth data type=friend username=2005 ;secret=2005 secret=2005 host=dynamic context=from-sip mailbox=104 ;dtmfmod=inband reinvite=no canreinvite=no nat=yes callerid=D-link ID2 <2005> [2006] ; Duplicate of 2000, except with different auth data type=friend username=2006 secret=2006 host=dynamic context=from-sip mailbox=105 ;dtmfmod=inband reinvite=no canreinvite=no ;nat=yes callerid=Pacenet ID1 <2006> [2007] ; Duplicate of 2000, except with different auth data type=friend username=2007 secret=2007 host=dynamic context=from-sip mailbox=106 ;dtmfmod=inband reinvite=no canreinvite=no ;nat=yes callerid=Pacenet ID1 <2007> [2008] ; Duplicate of 2000, except with different auth data type=friend username=2008 ;secret=2008 secret=2008 host=dynamic context=from-sip mailbox=107 ;dtmfmod=inband reinvite=no canreinvite=no ;nat=yes callerid=D-link ID3 <2008> [2009] ; Duplicate of 2000, except with different auth data type=friend username=2009 secret=2009 host=dynamic context=from-sip mailbox=108 ;dtmfmod=inband reinvite=no canreinvite=no ;nat=yes callerid=D-link ID4 <2009> [2010] ; Duplicate of 2000, except with different auth data type=friend username=2010 secret=2010 host=dynamic context=from-sip mailbox=109 ;dtmfmod=inband reinvite=no canreinvite=no ;nat=yes callerid=USA-ID10<2010> [2011] ; Duplicate of 2000, except with different auth data type=friend username=2011 secret=2011 host=dynamic context=from-sip mailbox=110 ;dtmfmod=inband reinvite=no canreinvite=no ;nat=yes callerid=USA-ID11<2011> [3001] ; Duplicate of 3000, except with different auth data type=friend username=3001 secret=3001 host=dynamic context=for-dlink mailbox=109 ;dtmfmod=inband reinvite=no canreinvite=no ;nat=yes callerid=D-link Contact1 <3001> [3002] ; Duplicate of 3000, except with different auth data type=friend username=3002 secret=3002 host=dynamic context=for-dlink mailbox=110 ;dtmfmod=inband reinvite=no canreinvite=no ;nat=yes callerid=D-link Contact2 <3002> [3003] ; Duplicate of 3000, except with different auth data type=friend username=3003 secret=3003 host=dynamic context=for-dlink mailbox=111 ;dtmfmod=inband reinvite=no canreinvite=no ;nat=yes callerid=D-link Contact3 <3003> [3004] ; Duplicate of 3000, except with different auth data type=friend username=3004 secret=3004 host=dynamic context=for-dlink mailbox=112 ;dtmfmod=inband reinvite=no canreinvite=no ;nat=yes callerid=D-link Contact4 <3004> [4001] ; Duplicate of 3000, except with different auth data type=friend username=4001 secret=4001 host=dynamic context=for-NetWeb mailbox=109 ;dtmfmod=inband reinvite=no canreinvite=no ;nat=yes callerid=NetWeb1 <4001> [4002] ; Duplicate of 3000, except with different auth data type=friend username=4002 secret=4002 host=dynamic context=for-NetWeb mailbox=110 ;dtmfmod=inband reinvite=no canreinvite=no nat=yes callerid=NetWeb2 <4002> [4003] ; Duplicate of 3000, except with different auth data type=friend username=4003 secret=4003 host=dynamic context=for-NetWeb mailbox=111 ;dtmfmod=inband reinvite=no canreinvite=no nat=yes callerid=NetWeb3 <4003> [4004] ; Duplicate of 3000, except with different auth data type=friend username=4004 secret=4004 host=dynamic context=for-NetWeb mailbox=112 ;dtmfmod=inband reinvite=no canreinvite=no nat=yes callerid=NetWeb4 <4004> [8612312341] ; Duplicate of 2000, except with different auth data type=friend username=8612312341 secret=4321 ;secret=dlink005 host=dynamic context=from-sip-1 mailbox=105 ;dtmfmod=inband reinvite=no canreinvite=no nat=yes callerid=Mr. Seshu <8612312341> [8612312342] ; Duplicate of 2000, except with different auth data type=friend username=8612312342 secret=netweb host=dynamic context=from-sip-1 mailbox=106 ;dtmfmod=inband reinvite=no canreinvite=no nat=yes callerid=Mr. Mandar <8612312342> [8612312343] ; Duplicate of 2000, except with different auth data type=friend username=8612312343 secret=4321 host=dynamic context=from-sip-1 mailbox=107 ;dtmfmod=inband reinvite=no canreinvite=no nat=yes callerid=Mr. Gary <8612312343> [8612312344] ; Duplicate of 2000, except with different auth data type=friend username=8612312344 secret=4321 ;host=dynamic context=from-sip-1 mailbox=108 ;dtmfmod=inband reinvite=no canreinvite=no nat=yes callerid=Mr. NoName <8612312344> [8612312345] ; Duplicate of 2000, except with different auth data type=friend username=8612312345 secret=4321 ;host=dynamic context=from-sip-1 mailbox=108 ;dtmfmod=inband reinvite=no canreinvite=no nat=yes callerid=Mr. NoName <8612312345> [8612312346] ; Duplicate of 2000, except with different auth data type=friend username=8612312346 secret=54321 ;host=dynamic context=for-NetWeb mailbox=108 ;dtmfmod=inband reinvite=no canreinvite=no nat=yes callerid=Mr. AAA <8612312346> -------------------------------------------------------------------------------- ZAPATA.CONF -------------------------------------------------------------------------------- ; ; Zapata telephony interface ; ; Configuration file [channels] ; ; Default language ; ;language=en ; ; Default context ; context=default ; ; Switchtype: Only used for PRI. ; ; national: National ISDN 2 (default) ; dms100: Nortel DMS100 ; 4ess: AT&T 4ESS ; 5ess: Lucent 5ESS ; euroisdn: EuroISDN ; ni1: Old National ISDN 1 ; switchtype=national ; ; PRI Dialplan: Only RARELY used for PRI. ; ; unknown: Unknown ; private: Private ISDN ; local: Local ISDN ; national: National ISDN ; international: International ISDN ; ;pridialplan=national ; ; Overlap dialing mode (sending overlap digits) ; ;overlapdial=yes ; ; Signalling method (default is fxs). Valid values: ; em: E & M ; em_w: E & M Wink ; featd: Feature Group D (The fake, Adtran style, DTMF) ; featdmf: Feature Group D (The real thing, MF (domestic, US)) ; featb: Feature Group B (MF (domestic, US)) ; fxs_ls: FXS (Loop Start) ; fxs_gs: FXS (Ground Start) ; fxs_ks: FXS (Kewl Start) ; fxo_ls: FXO (Loop Start) ; fxo_gs: FXO (Ground Start) ; fxo_ks: FXO (Kewl Start) ; pri_cpe: PRI signalling, CPE side ; pri_net: PRI signalling, Network side ; sf: SF (Inband Tone) Signalling ; sf_w: SF Wink ; sf_featd: SF Feature Group D (The fake, Adtran style, DTMF) ; sf_featdmf: SF Feature Group D (The real thing, MF (domestic, US)) ; sf_featb: SF Feature Group B (MF (domestic, US)) ; The following are used for Radio interfaces: ; fxs_rx: Receive audio/COR on an FXS kewlstart interface (FXO at the channel bank) ; fxs_tx: Transmit audio/PTT on an FXS loopstart interface (FXO at the channel bank) ; fxo_rx: Receive audio/COR on an FXO loopstart interface (FXS at the channel bank) ; fxo_tx: Transmit audio/PTT on an FXO groundstart interface (FXS at the channel bank) ; em_rx: Receive audio/COR on an E&M interface (1-way) ; em_tx: Transmit audio/PTT on an E&M interface (1-way) ; em_txrx: Receive audio/COR AND Transmit audio/PTT on an E&M interface (2-way) ; em_rxtx: same as em_txrx (for our dyslexic friends) ; sf_rx: Receive audio/COR on an SF interface (1-way) ; sf_tx: Transmit audio/PTT on an SF interface (1-way) ; sf_txrx: Receive audio/COR AND Transmit audio/PTT on an SF interface (2-way) ; sf_rxtx: same as sf_txrx (for our dyslexic friends) ; signalling=fxo_ls ; ; Whether or not to do distinctive ring detection on FXO lines ; ;usedistinctiveringdetection=yes ; ; Whether or not to use caller ID ; usecallerid=yes ; ; Whether or not to hide outgoing caller ID (Override with *67 or *82) ; hidecallerid=no ; ; Whether or not to enable call waiting on FXO lines ; callwaiting=yes ; ; Whether or not restrict outgoing caller ID (will be sent as ANI only, not available for the user) ; Mostly use with FXS ports ; ;restrictcid=no ; ; Whether or not use the caller ID presentation for the outgoing call that the calling switch is sending ; usecallingpres=yes ; ; Support Caller*ID on Call Waiting ; callwaitingcallerid=yes ; ; Support three-way calling ; threewaycalling=yes ; ; Support flash-hook call transfer (requires three way calling) ; transfer=yes ; ; Support call forward variable ; cancallforward=yes ; ; Whether or not to support Call Return (*69) ; callreturn=yes ; ; Stutter dialtone support: If a mailbox is specified, then when voicemail ; is received in that mailbox, taking the phone off hook will cause ; a stutter dialtone instead of a normal one ; ;mailbox=1234 ; ; Enable echo cancellation ; Use either "yes", "no", or a power of two from 32 to 256 if you wish ; to actually set the number of taps of cancellation. ; echocancel=yes ; ; Generally, it is not necessary (and in fact undesirable) to echo cancel ; when the circuit path is entirely TDM. You may, however, reverse this ; behavior by enabling the echo cancel during pure TDM bridging below. ; echocancelwhenbridged=yes ; ; In some cases, the echo canceller doesn't train quickly enough and there ; is echo at the beginning of the call. Enabling echo training will cause ; asterisk to briefly mute the channel, send an impulse, and use the impulse ; response to pre-train the echo canceller so it can start out with a much ; closer idea of the actual echo. ; ;echotraining=yes ; ; If you are having trouble with DTMF detection, you can relax the ; DTMF detection parameters. Relaxing them may make the DTMF detector ; more likely to have "talkoff" where DTMF is detected when it ; shouldn't be. ; ;relaxdtmf=yes ; ; You may also set the default receive and transmit gains (in dB) ; rxgain=0.0 txgain=0.0 ; ; Logical groups can be assigned to allow outgoing rollover. Groups ; range from 0 to 31, and multiple groups can be specified. ; group=1 ; ; Ring groups (a.k.a. call groups) and pickup groups. If a phone is ringing ; and it is a member of a group which is one of your pickup groups, then ; you can answer it by picking up and dialing *8#. For simple offices, just ; make these both the same ; callgroup=1 pickupgroup=1 ; ; Specify whether the channel should be answered immediately or ; if the simple switch should provide dialtone, read digits, etc. ; immediate=no ; ; CallerID can be set to "asreceived" or a specific number ; if you want to override it. Note that "asreceived" only ; applies to trunk interfaces. ; ;callerid=2564286000 ; ; AMA flags affects the recording of Call Detail Records. If specified ; it may be 'default', 'omit', 'billing', or 'documentation'. ; ;amaflags=default ; ; Channels may be associated with an account code to ease ; billing ; ;accountcode=lss0101 ; ; ADSI (Analog Display Services Interface) can be enabled on a per-channel ; basis if you have (or may have) ADSI compatible CPE equipment ; ;adsi=yes ; ; On trunk interfaces (FXS) and E&M interfaces (E&M, Wink, Feature Group D ; etc, it can be useful to perform busy detection either in an effort to ; detect hangup or for detecting busies ; ;busydetect=yes ; ; If busydetect is enabled, is also possible to specify how many ; busy tones to wait before hanging up. The default is 4, but ; better results can be achieved if set to 6 or even 8. Mind that ; higher the number, more time is needed to hangup a channel, but ; lower is probability to get random hangups ; ;busycount=4 ; ; On trunk interfaces (FXS) it can be useful to attempt to follow the progress ; of a call through RINGING, BUSY, and ANSWERING. If turned on, call ; progress attempts to determine answer, busy, and ringing on phone lines. ; This feature is HIGHLY EXPERIMENTAL and can easily detect false answers, ; so don't count on it being very accurate. Also, it is ONLY configured for ; standard U.S. tones. This feature can also easily detect false hangups. ; The symptoms of this is being disconnected in the middle of a call for no ; reason. ; ;callprogress=yes ; ; Select which class of music to use for music on hold. If not specified ; then the default will be used. ; ;musiconhold=default ; ; PRI channels can have an idle extension and a minunused number. So long ; as at least "minunused" channels are idle, chan_zap will try to call ; "idledial" on them, and then dump them into the PBX in the "idleext" ; extension (which is of the form exten@context). When channels are needed ; the "idle" calls are disconnected (so long as there are at least "minidle" ; calls still running, of course) to make more channels available. The ; primary use of this is to create a dynamic service, where idle channels ; are bundled through multilink PPP, thus more efficiently utilizing ; combined voice/data services than conventional fixed mappings/muxings. ; ;idledial=6999 ;idleext=6999@dialout ;minunused=2 ;minidle=1 ; ; Configure jitter buffers in zapata (each one is 20ms, default is 4) ; ;jitterbuffers=4 ; ; Each channel consists of the channel number or range. It ; inherits the parameters that were specified above its declaration ; ;callerid="Green Phone"<(256) 428-6121> ;channel => 1 ;callerid="Black Phone"<(256) 428-6122> ;channel => 2 ;callerid="CallerID Phone" <(256) 428-6123> ;callerid="CallerID Phone" <(630) 372-1564> ;callerid="CallerID Phone" <(256) 704-4666> ;channel => 3 ;callerid="Pac Tel Phone" <(256) 428-6124> ;channel => 4 ;callerid="Uniden Dead" <(256) 428-6125> ;channel => 5 ;callerid="Cortelco 2500" <(256) 428-6126> ;channel => 6 ;callerid="Main TA 750" <(256) 428-6127> ;channel => 44 ; ; For example, maybe we have some other channels ; which start out in a different context and use ; E & M signalling instead. ; ;context=remote ;sigalling=em ;channel => 15 ;channel => 16 ;signalling=em_w ; ; All those in group 0 I'll use for outgoing calls ; ; Strip most significant digit (9) before sending ; ;stripmsd=1 ;callerid=asreceived ;group=0 ;signalling=fxs_ls ;channel => 45 ;signalling=fxo_ls ;group=1 ;callerid="Joe Schmoe" <(256) 428-6131> ;channel => 25 ;callerid="Megan May" <(256) 428-6132> ;channel => 26 ;callerid="Suzy Queue" <(256) 428-6233> ;channel => 27 ;callerid="Larry Moe" <(256) 428-6234> ;channel => 28 ; ; Sample PRI (CPE) config: Specify the switchtype, the signalling as ; either pri_cpe or pri_net for CPE or Network termination, and generally ; you will want to create a single "group" for all channels of the PRI. ; ; switchtype = national ; signalling = pri_cpe ; group = 2 ; channel => 1-23 ; ; Used for distintive ring support for x100p. ; You can see the dringX patterns is to set any one of the dringXcontext fields ; and they will be printed on the console when an inbound call comes in. ; ;dring1=95,0,0 ;dring1context=internal1 ;dring2=325,95,0 ;dring2context=internal2 ; If no pattern is matched here is where we go. ;context=default ;channel => 1 -------------------------------------------------------------------------------- EXTENSIONS.CONF -------------------------------------------------------------------------------- [general] static=yes ; These two lines prevent the command-line interface writeprotect=yes ; from overwriting the config file. Leave them here. VM=216.162.116.46; ip address of VOICE master [bogon-calls] ; ; Take unknown callers that may have found ; our system, and send them to a re-order tone. ; The string "_." matches any dialed sequence, so all ; calls will result in the Congestion tone application ; being called. They'll get bored and hang up eventually. ; exten => _.,1,Congestion [from-sip] ; ; If the number dialed by the calling party was "2000", then ; Dial the user "2000" via the SIP channel driver. Let the number ; ring for 20 seconds, and if no answer, proceed to priority 2. ; If the number gives a "busy" result, then jump to priority 102 ; exten => 2000,1,Dial(SIP/2000,20) ; ; Priority 2 send the caller to voicemail, and gives the "u"navailable ; message for user 2000, as recorded previously. The only way out ; of voicemail in this instance is to hang up, so we have reached ; the end of our priority list. ; exten => 2000,2,Voicemail(u2000) ; ; If the Dialed number in priority 1 above results in ; a "busy" code, then Dial will jump to 101 + (current priority) ; which in our case will be 101+1=102. This +101 jump is built ; into Asterisk and does not need to be defined. ; exten => 2000,102,Voicemail(b2000) exten => 2000,103,Hangup ; ; Now, what if the number dialed was "2001"? ; exten => 2001,1,Dial(SIP/2001,20) exten => 2001,2,Voicemail(u2001) exten => 2001,102,Voicemail(b2001) exten => 2001,103,Hangup ;New one exten => 2002,1,Dial(SIP/2002,20) exten => 2002,2,Voicemail(u2002) exten => 2002,102,Voicemail(b2002) exten => 2002,103,Hangup ;New one exten => 2003,1,Dial(SIP/2003,20) exten => 2003,2,Voicemail(u2003) exten => 2003,102,Voicemail(b2003) exten => 2003,103,Hangup ;New one exten => 2004,1,Dial(SIP/2004,20) exten => 2004,2,Voicemail(u2004) exten => 2004,102,Voicemail(b2004) exten => 2004,103,Hangup ;New one exten => 2005,1,Dial(SIP/2005,20) exten => 2005,2,Voicemail(u2005) exten => 2005,102,Voicemail(b2005) exten => 2005,103,Hangup ;New one exten => 2006,1,Dial(SIP/2006,20) exten => 2006,2,Voicemail(u2006) exten => 2006,102,Voicemail(b2006) exten => 2006,103,Hangup ;New one exten => 2007,1,Dial(SIP/2007,20) exten => 2007,2,Voicemail(u2007) exten => 2007,102,Voicemail(b2007) exten => 2007,103,Hangup ;New one exten => 2008,1,Dial(SIP/2008,20) exten => 2008,2,Voicemail(u2008) exten => 2008,102,Voicemail(b2008) exten => 2008,103,Hangup ;New one exten => 2009,1,Dial(SIP/2009,20) exten => 2009,2,Voicemail(u2009) exten => 2009,102,Voicemail(b2009) exten => 2009,103,Hangup ;New one exten => 2010,1,Dial(SIP/2010,20) exten => 2010,2,Voicemail(u2010) exten => 2010,102,Voicemail(b2010) exten => 2010,103,Hangup ;New one exten => 2011,1,Dial(SIP/2011,20) exten => 2011,2,Voicemail(u2011) exten => 2011,102,Voicemail(b2011) exten => 2011,103,Hangup ; ; Define a way so that users can dial a number to reach ; voicemail. Call the VoicemailMain application with the ; number of the caller already passed as a variable, so ; all the user needs to do is type in the password. ; exten => 2999,1,VoicemailMain(${CALLERIDNUM}) include => from-sip-1 [for-dlink] ;New one exten => 3001,1,Dial(SIP/3001,20) exten => 3001,2,Voicemail(u3001) exten => 3001,102,Voicemail(b3001) exten => 3001,103,Hangup ;New one exten => 3002,1,Dial(SIP/3002,20) exten => 3002,2,Voicemail(u3002) exten => 3002,102,Voicemail(b3002) exten => 3002,103,Hangup ;New one exten => 3003,1,Dial(SIP/3003,20) exten => 3003,2,Voicemail(u3003) exten => 3003,102,Voicemail(b3003) exten => 3003,103,Hangup ;New one exten => 3004,1,Dial(SIP/3004,20) exten => 3004,2,Voicemail(u3004) exten => 3004,102,Voicemail(b3004) exten => 3004,103,Hangup exten => 3999,1,VoicemailMain(${CALLERIDNUM}) [for-NetWeb] ;New one exten => 4001,1,Dial(SIP/4001,20) exten => 4001,2,Voicemail(u4001) exten => 4001,102,Voicemail(b4001) exten => 4001,103,Hangup ;New one exten => 4002,1,Dial(SIP/4002,20) exten => 4002,2,Voicemail(u4002) exten => 4002,102,Voicemail(b4002) exten => 4002,103,Hangup ;New one exten => 4003,1,Dial(SIP/4003,20) exten => 4003,2,Voicemail(u4003) exten => 4003,102,Voicemail(b4003) exten => 4003,103,Hangup ;New one exten => 4004,1,Dial(SIP/4004,20) exten => 4004,2,Voicemail(u4004) exten => 4004,102,Voicemail(b4004) exten => 4004,103,Hangup ;New one exten => 8612312346,1,Dial(SIP/8612312346,20) exten => 8612312346,2,Voicemail(u8612312346) exten => 8612312346,102,Voicemail(b8612312346) exten => 8612312346,103,Hangup exten => 4999,1,VoicemailMain(${CALLERIDNUM}) [from-sip-1] ;New one exten => 8612312341,1,Dial(SIP/8612312341,20) exten => 8612312341,2,Voicemail(u8612312341) exten => 8612312341,102,Voicemail(b8612312341) exten => 8612312341,103,Hangup ;New one exten => 8612312342,1,Dial(SIP/8612312342,20) exten => 8612312342,2,Voicemail(u8612312342) exten => 8612312342,102,Voicemail(b8612312342) exten => 8612312342,103,Hangup ;New one exten => 8612312343,1,Dial(SIP/8612312343,20) exten => 8612312343,2,Voicemail(u8612312343) exten => 8612312343,102,Voicemail(b8612312343) exten => 8612312343,103,Hangup ;New one exten => 8612312344,1,Dial(SIP/17323874133@216.162.116.46,20) exten => 8612312344,2,Voicemail(u8612312344) exten => 8612312344,102,Voicemail(b8612312344) exten => 8612312344,103,Hangup ;New one exten => 8612312345,1,MeetMe,1234 exten => 8612312345,2,Voicemail(u8612312345) exten => 8612312345,102,Voicemail(b8612312345) exten => 8612312345,103,Hangup include => from-sip ;exten => 8612312349,1,VoicemailMain(${CALLERIDNUM}) ;route calls from h323 protocaol to sip to gatgekeeper [h323] exten => _.,1,dial(SIP/BYEXTENSION@216.162.116.46:5060)