[Asterisk-bsd] isdn4bsd-asterisk setting for OpenVox B400P. Works!
lizhong zhu
zhulizhongum at yahoo.com.cn
Mon Mar 10 01:40:05 CDT 2008
hello, all of users:
Firstly, i must say thanks to Hans, and other friends to help me. now it works with OpenVox B400P. It can support LEDs. wow! Since some users have problems with installation, i comes out a more detailed instruction for them. maybe, it can help them. if i missed something in the doc, please add on it. and try to be perfect. in my experience, you have to follow few steps:
hello, all of users:
Firstly, i must say thanks to Hans, and other friends to help me. now it works with OpenVox B400P. It can support LEDs. wow! Since some users have problems with installation, i comes out a more detailed instruction for them. maybe, it can help them. if i missed something in the doc, please add on it. and try to be perfect. in my experience, you have to follow few steps:
1) install freebsd-6.2 with source files:
run: sysinstall->configure->distributions->base, kernels, src and sys
and ports. if you not sure that, please select more options. it is very important for compiling isdn4bsd and kernels. please check it carefully.
2) portsnap fetch, it will take much time
3) portsnap extract
4) cd to asterisk port(usr/ports/net/asterisk(Asterisk 1.4.17) and make install clean to install asterisk with other packages.
5) install Subversion and created one dir call i4b under /usr/src
6) refer the doc from Hans to install svn code
7) install chan_capi under /usr/src/i4b/i4b/trunk/chan_capi
8) recompile kernel with capi and i4b. some people use kldload i4b, but i can not do that. edit the GENERIC and add these values:
# i4b required
option IPR_VJ
device "i4bdss1"
device "i4b"
device "i4btrc"
device
"i4bctl"
device "i4brbch"
device "i4btel"
device ihfc
device sound
and recompile it and make depend and make install.
9) after compile the kernel, you have to edit the capi.conf and extensiosn.conf under /usr/local/etc/asterisk. here, i list out my capi.conf and extensiosn.conf as a doc for you
**************************capi.conf*****************
; example "capi.conf"
;
; FreeBSD: /usr/local/etc/asterisk/capi.conf
; NetBSD: /usr/pkg/etc/asterisk/capi.conf
; Linux: /etc/asterisk/capi.conf
;
[general]
;
; In countries like Norway, the nationalprefix should
; just be left
empty.
;
nationalprefix=0
internationalprefix=00
rxgain=1.0
txgain=1.0
;ulaw=yes ;set this, if you live in u-law world instead of a-law
debug=yes ;set this, if capi debugging should be enabled by default
; interface
sections ...
;
; This is an example for an ISDN adapter
; configured for TE-mode:
;
[ISDN1] ;this example interface gets name 'ISDN1' and may be any
;name not starting with 'g' or 'contr'.
isdnmode=msn ;'MSN' (point-to-multipoint)
incomingmsn=* ;allow incoming calls to this list of MSNs/DIDs, * == any
;
; Format of "incomingmsn" is like this:
;
; 0) This will only allow any MSN:
;
; incomingmsn=*
;
; 1) This will only allow (MSN == "1"):
;
; incomingmsn=1
;
; 2) This will only allow (MSN == "1") or (MSN == "2") or (MSN == "3"):
;
; incomingmsn=1,2,3
;
; 3) This will only allow (MSN == "1XX..") or (MSN
== "2") or (MSN == "3XX.."):
;
; incomingmsn=1*,2,3*
;
; NOTE: When a number matches "1*", everything preceeding the "*" is
; stripped away from the incoming number. For example if "incomingmsn=1*" and
; the MSN is 1234, only 234 is passed
to Asterisk.
;
controller=8 ;ISDN4BSD default (first controller)
group=2 ;dialout group
;prefix=0 ;set a prefix to calling number on incoming calls
softdtmf=1 ;enable/disable software dtmf detection
relaxdtmf=off ;in addition to softdtmf, you can use
;relaxed dtmf detection, which implies softdtmf=yes
accountcode= ;Asterisk accountcode to use in CDRs
context=isdn_in_te ;context for incoming calls
holdtype=local ;when Asterisk puts the call on hold, ISDN HOLD will be used. If
;set to 'local' (default value), no hold is done and Asterisk may
;play MOH.
immediate=yes ;immediate start of pbx with
extension 's' if no digits were
;received on incoming call (no destination number yet)
echocancel=no ;disable echo canceller
;echocancelold=yes;use facility selector 6 instead of correct 8 (necessary for older eicon drivers)
;echotail=64
;echo cancel tail setting
bridge=yes ;native bridging (CAPI line interconnect) if available
;callgroup=1 ;Asterisk call group
;deflect=1234567 ;deflect incoming calls to 1234567 if all B channels are busy
devices=2 ;number of concurrent calls on this controller
;(2 makes sense for single BRI, 30 for PRI)
;wait_silence_samples=1000 ; wait for 1/8 second of silence before passing
; any audio (outgoing calls in te-mode only)
;dtmf_generate=yes ; set this if your [SIP] phone does not generate
; inband DTMF tones. It is not recommended to
; enable this. You should configure your [SIP] phone
;
to generate both inband DTMF and SIP INFO.
;
; This is an example for an ISDN adapter
; configured for NT-mode:
;
[ISDN2] ;this example interface gets name 'ISDN1' and may be any
;name not starting with 'g' or
'contr'.
isdnmode=msn ;'MSN' (point-to-multipoint)
incomingmsn=* ;allow incoming calls to this list of MSNs/DIDs, * == any
;
; Format of "incomingmsn" is like this:
;
; 0) This will only allow any MSN:
;
; incomingmsn=*
;
; 1) This will only allow (MSN == "1"):
;
; incomingmsn=1
;
; 2) This will only allow (MSN == "1") or (MSN == "2") or (MSN == "3"):
;
; incomingmsn=1,2,3
;
; 3) This will only allow (MSN == "1XX..") or (MSN == "2") or (MSN == "3XX.."):
;
; incomingmsn=1*,2,3*
;
; NOTE: When a number matches "1*", everything preceeding the "*" is
; stripped away from the incoming number. For example if "incomingmsn=1*" and
; the MSN
is 1234, only 234 is passed to Asterisk.
controller=9 ;ISDN4BSD default (first controller)
group=2 ;dialout group
;prefix=0 ;set a prefix to calling number on incoming calls
softdtmf=0 ;enable/disable software dtmf
detection
relaxdtmf=off ;in addition to softdtmf, you can use
;relaxed dtmf detection, which implies softdtmf=yes
accountcode= ;Asterisk accountcode to use in CDRs
context=isdn_in_te ;context for incoming calls
holdtype=local ;when Asterisk puts the call on hold, ISDN HOLD will be used. If
;set to 'local' (default value), no hold is done and Asterisk may
;play MOH.
immediate=yes ;immediate start of pbx with extension 's' if no digits were
;received on incoming call (no destination number yet)
echocancel=no ;disable echo canceller
;echocancelold=yes;use facility selector 6 instead of correct 8 (necessary for older
eicon drivers)
;echotail=64 ;echo cancel tail setting
bridge=yes ;native bridging (CAPI line interconnect) if available
;callgroup=1 ;Asterisk call group
;deflect=1234567 ;deflect incoming calls to 1234567 if all B channels are
busy
devices=2 ;number of concurrent calls on this controller
;(2 makes sense for single BRI, 30 for PRI)
;wait_silence_samples=1000 ; wait for 1/8 second of silence before passing
; any audio (outgoing calls in te-mode only)
;dtmf_generate=yes ; set this if your [SIP] phone does not generate
; inband DTMF tones. It is not recommended to
; enable this. You should configure your [SIP] phone
; to generate both inband DTMF and SIP INFO.
[ISDN3] ;this example interface gets name 'ISDN1' and may be any
;name not starting with 'g' or 'contr'.
isdnmode=msn ;'MSN'
(point-to-multipoint)
incomingmsn=* ;allow incoming calls to this list of MSNs/DIDs, * == any
;
; Format of "incomingmsn" is like this:
;
; 0) This will only allow any MSN:
;
; incomingmsn=*
;
; 1) This will only allow (MSN == "1"):
;
;
incomingmsn=1
;
; 2) This will only allow (MSN == "1") or (MSN == "2") or (MSN == "3"):
;
; incomingmsn=1,2,3
;
; 3) This will only allow (MSN == "1XX..") or (MSN == "2") or (MSN == "3XX.."):
;
; incomingmsn=1*,2,3*
;
; NOTE: When a number matches "1*", everything preceeding the "*" is
; stripped away from the incoming number. For example if "incomingmsn=1*" and
; the MSN is 1234, only 234 is passed to Asterisk.
;
controller=10 ;ISDN4BSD default (first controller)
group=2 ;dialout group
;prefix=0 ;set a prefix to calling number on incoming calls
softdtmf=0 ;enable/disable software dtmf detection
relaxdtmf=off ;in
addition to softdtmf, you can use
;relaxed dtmf detection, which implies softdtmf=yes
accountcode= ;Asterisk accountcode to use in CDRs
context=isdn_in_te ;context for incoming calls
holdtype=local ;when Asterisk puts the call on hold, ISDN HOLD will be used.
If
;set to 'local' (default value), no hold is done and Asterisk may
;play MOH.
immediate=yes ;immediate start of pbx with extension 's' if no digits were
;received on incoming call (no destination number yet)
echocancel=no ;disable echo canceller
;echocancelold=yes;use facility selector 6 instead of correct 8 (necessary for older eicon drivers)
;echotail=64 ;echo cancel tail setting
bridge=yes ;native bridging (CAPI line interconnect) if available
;callgroup=1 ;Asterisk call group
;deflect=1234567 ;deflect incoming calls to 1234567 if all B channels are busy
devices=2 ;number of
concurrent calls on this controller
;(2 makes sense for single BRI, 30 for PRI)
;wait_silence_samples=1000 ; wait for 1/8 second of silence before passing
; any audio (outgoing calls in te-mode only)
;dtmf_generate=yes ; set this
if your [SIP] phone does not generate
; inband DTMF tones. It is not recommended to
; enable this. You should configure your [SIP] phone
; to generate both inband DTMF and SIP INFO.
[ISDN4] ;this example interface gets name 'ISDN1' and may be any
;name not starting with 'g' or 'contr'.
isdnmode=msn ;'MSN' (point-to-multipoint)
incomingmsn=* ;allow incoming calls to this list of MSNs/DIDs, * == any
;
; Format of "incomingmsn" is like this:
;
; 0) This will only allow any MSN:
;
; incomingmsn=*
;
; 1) This will only allow (MSN == "1"):
;
; incomingmsn=1
;
; 2) This
will only allow (MSN == "1") or (MSN == "2") or (MSN == "3"):
;
; incomingmsn=1,2,3
;
; 3) This will only allow (MSN == "1XX..") or (MSN == "2") or (MSN == "3XX.."):
;
; incomingmsn=1*,2,3*
;
; NOTE: When a number matches "1*", everything preceeding the "*" is
;
stripped away from the incoming number. For example if "incomingmsn=1*" and
; the MSN is 1234, only 234 is passed to Asterisk.
;
controller=11 ;ISDN4BSD default (first controller)
group=1 ;dialout group
;prefix=0 ;set a prefix to calling number on incoming calls
softdtmf=0 ;enable/disable software dtmf detection
relaxdtmf=off ;in addition to softdtmf, you can use
;relaxed dtmf detection, which implies softdtmf=yes
accountcode= ;Asterisk accountcode to use in CDRs
context=isdn_in_te ;context for incoming calls
holdtype=local ;when Asterisk puts the call on hold, ISDN HOLD will be used. If
;set
to 'local' (default value), no hold is done and Asterisk may
;play MOH.
immediate=yes ;immediate start of pbx with extension 's' if no digits were
;received on incoming call (no destination number yet)
echocancel=no ;disable echo
canceller
;echocancelold=yes;use facility selector 6 instead of correct 8 (necessary for older eicon drivers)
;echotail=64 ;echo cancel tail setting
bridge=yes ;native bridging (CAPI line interconnect) if available
;callgroup=1 ;Asterisk call group
;deflect=1234567 ;deflect incoming calls to 1234567 if all B channels are busy
devices=2 ;number of concurrent calls on this controller
;(2 makes sense for single BRI, 30 for PRI)
;wait_silence_samples=1000 ; wait for 1/8 second of silence before passing
; any audio (outgoing calls in te-mode only)
;dtmf_generate=yes ; set this if your [SIP] phone does
not generate
; inband DTMF tones. It is not recommended to
; enable this. You should configure your [SIP] phone
; to generate both inband DTMF and SIP INFO.
;example "extensions.conf" (Also see "capi.conf" example)
;
;
FreeBSD: /usr/local/etc/asterisk/extensions.conf
; NetBSD: /usr/pkg/etc/asterisk/extensions.conf
; Linux: /etc/asterisk/extensions.conf
;
********************extensions.conf********************
[isdn_in_te]
exten => s,1,NoOp(Invalid incoming call ${EXTEN})
exten => s,2,Dial(SIP/600)
[from-internal]
exten => 100,1,Dial(CAPI/contr11/1342439XXXXXX/b1,100,Tt)
exten => 100,2,Hangup
exten => 500,1,Dial(sip/500)
exten => 500,2,Hganup
;
;exten => 100,1,Dial(CAPI/ISDN1/${CALLNUMBER[${CALLERIDNUM}]}:${DIALSTR}/bl)
10) run the isdnconfig:
isdnconfig -u 8(9,10,11) pcm_master -p DRVR_DSS1_TE
11) run asterisk: asterisk -vvvvvvvvvvgc, pleae check chan_capi.so
i called to controller 11, it works. i can call out and calling using this port.
it also show erros when inbound call comes in:
*************************************
== cd_free:1817:ENTRY=ISDN4:PLCI=0x040b:PBX_CHAN=CAPI/ISDN4/-2:
==
> CAPI: Command=DISCONNECT_IND, 0x848c: no call descriptor for PLCI=0x040b, MSGNUM=0x0000:
[Mar 7 15:55:35] ERROR[692]: chan_capi.c:1643 cd_by_pbx_chan: PBX channel has no interface!
== Spawn extension (isdn_in_te, s, 2) exited non-zero on 'CAPI/ISDN4/-2'
[Mar 7 15:55:35] ERROR[692]: chan_capi.c:1643 cd_by_pbx_chan: PBX channel has no interface!
> Data = 'ISDN4/'
> Out of order update usecount!
*************************
that's all i did. hope somebody add more and make it as much complete as
possible.
Regards,
James.zhu from OpenVox
---------------------------------
雅虎邮箱传递新年祝福,个性贺卡送亲朋!
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.digium.com/pipermail/asterisk-bsd/attachments/20080310/ee53f445/attachment-0001.htm
More information about the Asterisk-BSD
mailing list