[Asterisk-Users] T100P: Can't Make/Receive Zap Calls (Long Newbie Blah)

Steven J. Garcia Steven.Garcia at slmindustries.com
Fri Mar 18 18:35:59 MST 2005


All,

Alright, I've looked around the internet, the voip-info.org wiki, and 
browsed the contents of this mailing list.  While I've found a couple of 
scenarios that are close to this one, I haven't found one that uses my 
particular card (T100P).  Without further delay --

I have successfully configured internal SIP services between a Snom 200 
and a Windows X-Lite client and have even connected to the Digium PBX 
demo box through SIP (not that it makes much of a difference in this case).

So, what I'm trying to do is allow any internal SIP extension to dial 
the outside world.  I'd like to have eight dedicated Zap channels for 
making outside calls, but I need to make Asterisk see them first!  For 
some reason, Asterisk refuses to see the PRI, but the T100P sees the 
T1/PRI (I think).

We have the phone numbers we're to use assigned and I verified all the 
signalling, framing, etcetera, with the provider.

I know lots of the stuff in extensions.conf is probably not needed, but 
I wanted to include everything that I'm having the PBX box use.  While 
I've managed to get SOME of it working, I don't understand everything 
about Asterisk.

Once again, thanks for help and sorry for the huge post.  If I'm on 
crack, please feel free to let me know.

Steven J. Garcia
IT Support
SLM Industries, L.L.C.

=======================================================================
Scenario/Problem Data
=======================================================================

Scenario:  I'm responsible for configuring our office PBX which will 
consist of the following: four individual voice lines, a conference 
line, and a fax line.  We currently have a T1 PRI through our service 
provider (E8ZS/ESF; National/PRI_CPE).  Our interfaces configuration is 
set up as below

T100P -> Cisco IAD-2400 (PBX Port) -> Provider's Network -> Provider's 
Softswitch

// ++ I have compiled all of the required files for the following linux 
// ++ distribution, kernel, gcc version (reported using cat
// ++ /proc/version).

Linux version 2.6.8-1-386 (joshk at trollwife) (gcc version 3.3.5 (Debian 
1:3.3.5-2)) #1 Thu Nov 25 04:24:08 UTC 2004

I have compiled and installed the required sources (libpri, zaptel, 
asterisk) in the listed order.  I installed all other required libraries 
as best as I could (and before the previously mentioned three).  (Since 
I'm not using RH, some of these packages had to be nabbed as best as 
possible.)  I have, to my knowledge, followed all the directions 
required to make these functions work.

======================================================================

Here is the error message that Asterisk throws when I try to connect to 
an outside line.

pbx:/etc/asterisk# asterisk -vvvvvvvvvvvvvgr
   == Parsing '/etc/asterisk/asterisk.conf': Found
   == Parsing '/etc/asterisk/extconfig.conf': Found
Asterisk 1.0.2, Copyright (C) 1999-2004 Digium.
Written by Mark Spencer <markster at digium.com>
=========================================================================
Connected to Asterisk 1.0.2 currently running on pbx (pid = 14307)
Verbosity was 5 and is now 13
     -- Executing Dial("SIP/10.10.5.2-0811b1c0", "Zap/g1/<Real 7-digit 
TN here>") in new stack
Mar 18 20:20:15 NOTICE[1148631984]: app_dial.c:743 dial_exec: Unable to 
create channel of type 'Zap'
   == Everyone is busy/congested at this time
     -- Executing Congestion("SIP/10.10.5.2-0811b1c0", "") in new stack
   == Spawn extension (default, 9<Real 7-digit TN Here>, 2) exited 
non-zero on 'SIP/10.10.5.2-0811b1c0'
pbx*CLI>


======================================================================

// ++ ztcfg -vvvv returns the following output:

Zaptel Configuration
======================

SPAN 1: ESF/B8ZS Build-out: 0 db (CSU)/0-133 feet (DSX-1)

Channel map:

Channel 01: Individual Clear channel (Default) (Slaves: 01)
Channel 02: Individual Clear channel (Default) (Slaves: 02)
Channel 03: Individual Clear channel (Default) (Slaves: 03)
Channel 04: Individual Clear channel (Default) (Slaves: 04)
Channel 05: Individual Clear channel (Default) (Slaves: 05)
Channel 06: Individual Clear channel (Default) (Slaves: 06)
Channel 07: Individual Clear channel (Default) (Slaves: 07)
Channel 08: Individual Clear channel (Default) (Slaves: 08)
Channel 09: Individual Clear channel (Default) (Slaves: 09)
Channel 10: Individual Clear channel (Default) (Slaves: 10)
Channel 11: Individual Clear channel (Default) (Slaves: 11)
Channel 12: Individual Clear channel (Default) (Slaves: 12)
Channel 13: Individual Clear channel (Default) (Slaves: 13)
Channel 14: Individual Clear channel (Default) (Slaves: 14)
Channel 15: Individual Clear channel (Default) (Slaves: 15)
Channel 16: Individual Clear channel (Default) (Slaves: 16)
Channel 17: Individual Clear channel (Default) (Slaves: 17)
Channel 18: Individual Clear channel (Default) (Slaves: 18)
Channel 19: Individual Clear channel (Default) (Slaves: 19)
Channel 20: Individual Clear channel (Default) (Slaves: 20)
Channel 21: Individual Clear channel (Default) (Slaves: 21)
Channel 22: Individual Clear channel (Default) (Slaves: 22)
Channel 23: Individual Clear channel (Default) (Slaves: 23)
Channel 24: D-channel (Default) (Slaves: 24)

24 channels configured.

// ++ And the light on the T100P is solid green.

=============================================================

// ++ zttest returns the following output

pbx:/usr/src# /sbin/zttest -vvvv
Opened pseudo zap interface, measuring accuracy...
99.987793% 99.987793% 99.987793% 99.987793%
--- Results after 4 passes ---
Best: 99.987793 -- Worst: 99.987793

==============================================================

// ++ cat /proc/zaptel/1 returns the following output

pbx:/usr/src# cat /proc/zaptel/1
Span 1: WCT1/0 "Digium Wildcard T100P T1/PRI Card 0" B8ZS/ESF
         IRQ misses: 761

            1 WCT1/0/1 Clear
            2 WCT1/0/2 Clear
            3 WCT1/0/3 Clear
            4 WCT1/0/4 Clear
            5 WCT1/0/5 Clear
            6 WCT1/0/6 Clear
            7 WCT1/0/7 Clear
            8 WCT1/0/8 Clear
            9 WCT1/0/9 Clear
           10 WCT1/0/10 Clear
           11 WCT1/0/11 Clear
           12 WCT1/0/12 Clear
           13 WCT1/0/13 Clear
           14 WCT1/0/14 Clear
           15 WCT1/0/15 Clear
           16 WCT1/0/16 Clear
           17 WCT1/0/17 Clear
           18 WCT1/0/18 Clear
           19 WCT1/0/19 Clear
           20 WCT1/0/20 Clear
           21 WCT1/0/21 Clear
           22 WCT1/0/22 Clear
           23 WCT1/0/23 Clear
           24 WCT1/0/24 HDLCFCS

=======================================================================

// ++ strace -xx cat /dev/zap/1  returns this and then lots of um-laued 
// ++ (sp?) y-characters.

pbx:/usr/src# strace -xx cat /dev/zap/1
execve("/bin/cat", ["cat", "/dev/zap/1"], [/* 17 vars */]) = 0
uname({sys="Linux", node="pbx", ...})   = 0
brk(0)                                  = 0x804d000
old_mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, 
-1, 0) = 0x40017000
access("/etc/ld.so.nohwcap", F_OK)      = -1 ENOENT (No such file or 
directory)
open("/etc/ld.so.preload", O_RDONLY)    = -1 ENOENT (No such file or 
directory)
open("/etc/ld.so.cache", O_RDONLY)      = 3
fstat64(3, {st_mode=S_IFREG|0644, st_size=14363, ...}) = 0
old_mmap(NULL, 14363, PROT_READ, MAP_PRIVATE, 3, 0) = 0x40018000
close(3)                                = 0
access("/etc/ld.so.nohwcap", F_OK)      = -1 ENOENT (No such file or 
directory)
open("/lib/tls/libc.so.6", O_RDONLY)    = 3
read(3, "\x7f\x45\x4c\x46\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00"..., 
512) = 512
fstat64(3, {st_mode=S_IFREG|0644, st_size=1253924, ...}) = 0
old_mmap(NULL, 1260140, PROT_READ|PROT_EXEC, MAP_PRIVATE, 3, 0) = 0x4001c000
old_mmap(0x40145000, 32768, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 
3, 0x129000) = 0x40145000
old_mmap(0x4014d000, 10860, PROT_READ|PROT_WRITE, 
MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x4014d000
close(3)                                = 0
old_mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, 
-1, 0) = 0x40150000
set_thread_area({entry_number:-1 -> 6, base_addr:0x401502a0, 
limit:1048575, seg_32bit:1, contents:0, read_exec_only:0, 
limit_in_pages:1, seg_not_present:0, useable:1}) = 0
munmap(0x40018000, 14363)               = 0
open("/usr/lib/locale/locale-archive", O_RDONLY|O_LARGEFILE) = 3
fstat64(3, {st_mode=S_IFREG|0644, st_size=290576, ...}) = 0
mmap2(NULL, 290576, PROT_READ, MAP_PRIVATE, 3, 0) = 0x40151000
close(3)                                = 0
brk(0)                                  = 0x804d000
brk(0x806e000)                          = 0x806e000
brk(0)                                  = 0x806e000
fstat64(1, {st_mode=S_IFCHR|0620, st_rdev=makedev(136, 0), ...}) = 0
open("/dev/zap/1", O_RDONLY|O_LARGEFILE) = 3
fstat64(3, {st_mode=S_IFCHR|0644, st_rdev=makedev(196, 1), ...}) = 0
read(3, "\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff"..., 
4096) = 1024
write(1, "\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xf

===================================================================

// ++ cat /proc/interrupts returns the following output

pbx:/usr/src# cat /proc/interrupts
            CPU0
   0:  628474284          XT-PIC  timer
   1:        203          XT-PIC  i8042
   2:          0          XT-PIC  cascade
   7:   11236543          XT-PIC  parport0
   8:          4          XT-PIC  rtc
   9:          0          XT-PIC  acpi
  10:          0          XT-PIC  via82cxxx, uhci_hcd
  11:  628967004          XT-PIC  uhci_hcd, uhci_hcd, t1xxp, eth0
  12:        479          XT-PIC  i8042
  14:    2086045          XT-PIC  ide0
  15:         12          XT-PIC  ide1
NMI:          0
LOC:  628510985
ERR:        169
MIS:          0
pbx:/usr/src#

===============================================================

// ++ lsmod returns the following output

pbx:/usr/src# lsmod
Module                  Size  Used by
ipv6                  229764  10
snd_via82xx            26660  0
snd_ac97_codec         59268  1 snd_via82xx
snd_pcm                85384  1 snd_via82xx
snd_timer              23172  1 snd_pcm
snd_page_alloc         11144  2 snd_via82xx,snd_pcm
gameport                4736  1 snd_via82xx
snd_mpu401_uart         7296  1 snd_via82xx
snd_rawmidi            23204  1 snd_mpu401_uart
snd_seq_device          7944  1 snd_rawmidi
snd                    50660  7 
snd_via82xx,snd_ac97_codec,snd_pcm,snd_timer,snd_mpu401_uart,snd_rawmidi,snd_seq_device
wct1xxp                14752  0
zaptel                218500  3 wct1xxp
pci_hotplug            30640  0
via_agp                 8832  1
agpgart                31784  1 via_agp
parport_pc             33348  0
parport                37320  1 parport_pc
mousedev                9996  0
floppy                 54992  0
tsdev                   7168  0
psmouse                17800  0
pcspkr                  3816  0
evdev                   9088  0
hisax                 483280  0
isdn                  128204  1 hisax
slhc                    7040  1 isdn
uhci_hcd               29328  0
usbcore               104164  3 uhci_hcd
via82cxxx_audio        26248  0
uart401                11460  1 via82cxxx_audio
sound                  75308  2 via82cxxx_audio,uart401
soundcore               9824  3 snd,via82cxxx_audio,sound
ac97_codec             16908  1 via82cxxx_audio
via_rhine              19720  0
mii                     4864  1 via_rhine
crc32                   4608  1 via_rhine
via_ircc               20368  0
irda                  167360  1 via_ircc
crc_ccitt               2432  3 zaptel,hisax,irda
capability              4872  0
commoncap               7168  1 capability
ide_cd                 38176  0
cdrom                  35740  1 ide_cd
rtc                    12088  0
ext3                  109672  5
jbd                    54552  1 ext3
ide_generic             1664  0
ide_disk               16768  7
via82cxxx              12956  1
ide_core              125028  4 ide_cd,ide_generic,ide_disk,via82cxxx
unix                   25908  18
font                    8576  0
vesafb                  6688  0
cfbcopyarea             3840  1 vesafb
cfbimgblt               3200  1 vesafb
cfbfillrect             3712  1 vesafb
pbx:/usr/src#

===================================================================

// ++ Output of zap show channels from Asterisk Console

pbx*CLI> zap show channels
    Chan Extension  Context         Language   MusicOnHold
  pseudo            default
pbx*CLI>

===================================================================

// ++ Output of pri show span 1 from Asterisk Console

pbx*CLI> pri show span 1
No PRI running on span 1
pbx*CLI>

===================================================================

// ++ Here is my hand-crafted zapata.conf, located in /etc/asterisk

pbx:/etc/asterisk# more zapata.conf
[Signalling Type]
#signalling=fxsks
signalling=pri_cpe

[ISDN PRI Switch Configuration]
switchtype=national
overlapdial=no
pridialpan=unknown

[Some Other Settings]
language=en
context=default

[Multilink PPP Options]
;minunused=2
;minidle=1
;idledial=6999
;idleext=6999 at idle

[Analog Trunk Features]
usedistinctiveringdetection=no
;dring1=96,0,0
;dring2=325,95,0
;dring=367,0,0
;
;dring1context=
;dring2context=
;dring3context=
;
busydetect=yes
busycount=8
callprogress=no
pulse=no

[Analog Handset Features]
asdi=no
immediate=no
callwaiting=yes
callwaitingcallerid=yes
threewaycalling=yes
transfer=yes
cancallforward=yes
callreturn=yes
;
;group=1
;callgroup=
;
;group=1
;pickupgroup=
;
useincomingcalleridonzaptransfer=yes

[Caller ID Options]
callerid="SLM Industries <317 333 7900>"
callerid=
callerid=asrecieved
usecallerid=yes
hidecallerid=no
restrictcid=no
usecallingpres=no

[Audio Quality Options]
relaxdtmf=no
echocancel=yes
echocancelwhenbridged=yes
echotraining=yes
rxgain=0.0
txgain=0.0

[Call Logging Options]
accountcode=slmindustries
amaflags=documentation

[Timing Parameters]
;prewink=
;preflash=
;wink=
;rxwink=
;rxflash=
;flash=
;start=
;debounce=

[Other Features]
mailbox=4000
;
channel => 1-23
group = 1

[mrottler]
context=mrottler

[Call Logging Options]
accountcode=mrottler
amaflags=documentation

[Caller ID Options]
callerid="SLMI - M. Rottler <317 123-4567>"
callerid=
callerid=asrecieved
usecallerid=yes
hidecallerid=no
restrictcid=no
usecallingpres=no

[Other Features]
mailbox=4001
;
;group=

[Analog Handset Features]
;
;group=1
;callgroup=
;
;group=1
;pickupgroup=
channel => 2

[arottler]
context=arottler

[Call Logging Options]
accountcode=arottler
amaflags=documentation

[Caller ID Options]
callerid="SLMI - A. Rottler <317 123-4567>"
callerid=
callerid=asrecieved
usecallerid=yes
hidecallerid=no
restrictcid=no
usecallingpres=no

[Other Features]
mailbox=4002
;
;group=

[Analog Handset Features]
;
;group=1
;callgroup=
;
;group=1
;pickupgroup=
channel => 3

[rparker]
context=rparker

[Call Logging Options]
accountcode=rparker
amaflags=documentation

[Caller ID Options]
callerid="SLMI - R. Parker <317 123-4567>"
callerid=
callerid=asrecieved
usecallerid=yes
hidecallerid=no
restrictcid=no
usecallingpres=no

[Other Features]
mailbox=4003
;
;group=

[Analog Handset Features]
;
;group=1
;callgroup=
;
;group=1
;pickupgroup=
channel => 4

[sgarcia]
context=sgarcia

[Call Logging Options]
accountcode=sgarcia
amaflags=documentation

[Caller ID Options]
callerid="SLMI - S. Garcia <317 123-4567>"
callerid=
callerid=asrecieved
usecallerid=yes
hidecallerid=no
restrictcid=no
usecallingpres=no

[Other Features]
mailbox=4004
;
;group=

[Analog Handset Features]
;
;group=1
;callgroup=
;
;group=1
;pickupgroup=
channel => 5

======================================================================

// ++ Here is my zaptel.conf, located in /etc

#[Wildcard T100P Configuration]
#[PRI Version]
#
# See the gathered documentation for more details on how to configure
# /etc/asterisk/zapata.conf with this configuration - Sar
#
span=1,1,0,esf,b8zs
bchan=1-23
dchan=24
loadzone=us
defaultzone=us
#
#


=======================================================================

// ++ Here is my obviously not handcrafted extensions.conf, located in 
// ++ /etc/asterisk


[general]

static=yes
writeprotect=no

; The "Globals" category contains global variables that can be referenced
; in the dialplan with ${VARIABLE} or ${ENV(VARIABLE)} for Environmental 
variabl
e
; ${${VARIABLE}} or ${text${VARIABLE}} or any hybrid
;
[globals]
;CONSOLE=Console/dsp                       ; Console interface for demo
CONSOLE=Zap/1
;CONSOLE=Phone/phone0
TRUNK=Zap/g1                                    ; Trunk interface
;
; please note that I have NO clue how to use the previous statement or
; how to organize groups, although it's probably insanely simple.
;
TRUNKMSD=1               ; MSD digits to strip (usually 1 or 0)

[trunkint]
;
; International long distance through trunk
;
exten => _9011.,1,Dial(${TRUNK}/${EXTEN:${TRUNKMSD}})
exten => _9011.,2,Congestion

[trunkld]
;
; Long distance context accessed through trunk
;
exten => _91NXXNXXXXXX,1,Dial(${TRUNK}/${EXTEN:${TRUNKMSD}})
exten => _91NXXNXXXXXX,2,Congestion

[trunklocal]
;
; Local seven-digit dialing accessed through trunk interface
;
exten => _9NXXXXXX,1,Dial(${TRUNK}/${EXTEN:${TRUNKMSD}})
exten => _9NXXXXXX,2,Congestion

[trunktollfree]
;
; Long distance context accessed through trunk interface
;
exten => _91800NXXXXXX,1,Dial(${TRUNK}/${EXTEN:${TRUNKMSD}})
exten => _91800NXXXXXX,2,Congestion
exten => _91888NXXXXXX,1,Dial(${TRUNK}/${EXTEN:${TRUNKMSD}})
exten => _91888NXXXXXX,2,Congestion
exten => _91877NXXXXXX,1,Dial(${TRUNK}/${EXTEN:${TRUNKMSD}})
exten => _91877NXXXXXX,2,Congestion
exten => _91866NXXXXXX,1,Dial(${TRUNK}/${EXTEN:${TRUNKMSD}})
exten => _91866NXXXXXX,2,Congestion

[international]
;
; Master context for international long distance
;
ignorepat => 9
include => longdistance
include => trunkint

[longdistance]
;
; Master context for long distance
;
ignorepat => 9
include => local
include => trunkld

[local]
;
; Master context for local, toll-free, and iaxtel calls only
;
ignorepat => 9
include => default
include => parkedcalls
include => trunklocal
include => trunktollfree

[macro-stdexten];
;
; Standard extension macro:
;   ${ARG1} - Extension  (we could have used ${MACRO_EXTEN} here as well
;   ${ARG2} - Device(s) to ring
;
exten => s,1,Dial(${ARG2},20)           ; Ring the interface, 20 seconds 
maximum
exten => s,2,Goto(s-${DIALSTATUS},1)    ; Jump based on status 
(NOANSWER,BUSY,CH
ANUNAVAIL,CONGESTION,ANSWER)

exten => s-NOANSWER,1,Voicemail(u${ARG1})               ; If 
unavailable, send t
o voicemail w/ unavail announce
exten => s-NOANSWER,2,Goto(default,s,1)                 ; If they press 
#, retur
n to start

exten => s-BUSY,1,Voicemail(b${ARG1})                   ; If busy, send 
to voice
mail w/ busy announce
exten => s-BUSY,2,Goto(default,s,1)                     ; If they press 
#, retur
n to start

exten => _s-.,1,Goto(s-NOANSWER,1)                      ; Treat anything 
else as
  no answer

exten => a,1,VoicemailMain(${ARG1})                     ; If they press 
*, send
the user into VoicemailMain

;
; My attempt to configure a sample extension for the Snom phone
; Hopefully this will work if I understand that instructions here well 
enough.
;

[sgarcia_snomsip]

exten => 4004,1,Dial(SIP/sgarcia_snomsip,4004,20)
exten => 4004,2,Goto(4004-$(DIALSTATUS},1)

exten => 4004-NOANSWER,1,Voicemail(u4004)               ; If 
unavailable, send t
o voicemail w/ unavail announce
exten => 4004-NOANSWER,2,Goto(default,4004,1)                 ; If they 
press #,
  return to start

exten => 4004-BUSY,1,Voicemail(b4004)                   ; If busy, send 
to voice
mail w/ busy announce
exten => 4004-BUSY,2,Goto(default,4004,1)                     ; If they 
press #,
  return to start

exten => _4004-.,1,Goto(4004-NOANSWER,1)                      ; Treat 
anything e
lse as no answer

exten => a,1,VoicemailMain(4004)                     ; If they press *, 
send the
  user into VoicemailMain

include => local
include => longdistance

[sgarcia_vphone]
;
; Software Phone client configuration.
;

exten => 4404,1,Dial(SIP/sgarcia_vphone,4404,20)
exten => 4404,2,Goto(4404-$(DIALSTATUS},1)

exten => 4404-NOANSWER,1,Dial(SIP/sgarcia_snomsip,4004,20)    ; If 
unavailable,
dial my snom phone
exten => 4404-NOANSWER,2,Voicemail(b4004)
exten => 4404-NOANSWER,3,Goto(default,4404,1)                 ; If they 
press #,
  return to start

exten => 4404-BUSY,1,Voicemail(b4404)                   ; If busy, send 
to voice
mail w/ busy announce
;exten => 4404-BUSY,2,Goto(default,4104,1)                     ; If they 
press #
, return to start

exten => _4404-.,1,Goto(4404-NOANSWER,1)                      ; Treat 
anything e
lse as no answer

exten => a,1,VoicemailMain(4004)                     ; If they press *, 
send the
  user into VoicemailMain

[demo]
;
; We start with what to do when a call first comes in.
;
exten => s,1,Wait,1                     ; Wait a second, just for fun
exten => s,2,Answer                     ; Answer the line
exten => s,3,DigitTimeout,5             ; Set Digit Timeout to 5 seconds
exten => s,4,ResponseTimeout,10         ; Set Response Timeout to 10 seconds
exten => s,5,BackGround(demo-congrats)  ; Play a congratulatory message
exten => s,6,BackGround(demo-instruct)  ; Play some instructions

exten => 2,1,BackGround(demo-moreinfo)  ; Give some more information.
exten => 2,2,Goto(s,6)

exten => 3,1,SetLanguage(fr)            ; Set language to french
exten => 3,2,Goto(s,5)                  ; Start with the congratulations

exten => 1000,1,Goto(default,s,1)
;
; We also create an example user, 1234, who is on the console and has
; voicemail, etc.
;
exten => 1234,1,Playback(transfer,skip)         ; "Please hold while..."
                                         ; (but skip if channel is not up)
exten => 1234,2,Macro(stdexten,1234,${CONSOLE})

exten => 1235,1,Voicemail(u1234)                ; Right to voicemail

exten => 1236,1,Dial(Console/dsp)               ; Ring forever
exten => 1236,2,Voicemail(u1234)                ; Unless busy

;
; # for when they're done with the demo
;
exten => #,1,Playback(demo-thanks)              ; "Thanks for trying the 
demo"
exten => #,2,Hangup                     ; Hang them up.

;
; A timeout and "invalid extension rule"
;
exten => t,1,Goto(#,1)                  ; If they take too long, give up
exten => i,1,Playback(invalid)          ; "That's not valid, try again"

;
; Create an extension, 500, for dialing the
; Asterisk demo.
;
exten => 500,1,Playback(demo-abouttotry); Let them know what's going on
exten => 500,2,Dial(IAX2/guest at misery.digium.com/s at default)     ; Call 
the Aster
isk demo
exten => 500,3,Playback(demo-nogo)      ; Couldn't connect to the demo site
exten => 500,4,Goto(s,6)                ; Return to the start over message.

;
; Create an extension, 600, for evaulating echo latency.
;
exten => 600,1,Playback(demo-echotest)  ; Let them know what's going on
exten => 600,2,Echo                     ; Do the echo test
exten => 600,3,Playback(demo-echodone)  ; Let them know it's over
exten => 600,4,Goto(s,6)                ; Start over

;
; Give voicemail at extension 8500
;
exten => 8500,1,VoicemailMain
exten => 8500,2,Goto(s,6)


[default]
;
; By default we include the demo.  In a production system, you
; probably don't want to have the demo there.
;
include => demo
include => sgarcia_snomsip
include => sgarcia_vphone

=========================================================================

// ++ Please note that I am the Asterisk Ubernoob and am quite surprised 
// ++ that I managed to get SIP working.  Any recommendations/help on
// ++ this matter would be most appreciated.



More information about the asterisk-users mailing list