– Kamailio SIP Server –

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

old-content:using_asterisk_as_a_conference_bridge [2006/08/26 02:00] (current)
Line 1: Line 1:
 +===== Using Asterisk as a Conference Bridge =====
 +
 +Using Asterisk as a conference bridge is much simpler than using it as a voicemail system because it does not require you to integrate OpenSER and Asterisk'​s database tables. No views, no trickery, and no editing the source code.
 +
 +==== Programs Needed ====
 +  * Latest Asterisk
 +  * app_cbmysql for Asterisk
 +  * Web MeetMe
 +  * Tables for CbMysql
 +
 +==== How This Will Work ====
 +
 +In OpenSER, add an account for asterisk. Then, set Asterisk up to register to that account. There won't need to be any route modifications because Asterisk will just be another number for users to call. Unfortunately,​ most of what I found online seemed to be multiple pieces that I just happened to put together.
 +
 +==== Configuration ====
 +
 +Be sure to fill in all username, password, and other settings with your details. ​
 +
 +=== Asterisk'​s sip.conf ===
 +
 +<​code>​
 +
 +[general]
 +context=conference ​             ; Default context for incoming calls
 +bindport=5060 ​                  ; UDP Port to bind to (SIP standard port is 5060)
 +bindaddr=0.0.0.0 ​               ; IP address to bind to (0.0.0.0 binds to all)
 +srvlookup=yes
 +tos=184 ​                        ; Set IP QoS to either a keyword or numeric val
 +disallow=all
 +allow=ulaw ​                     ; Allow codecs in order of preference
 +language=en ​                    ; Default language setting for all users/peers
 +relaxdtmf=yes ​                  ; Relax dtmf handling
 +rtptimeout=60 ​                  ; Terminate call if 60 seconds of no RTP activity
 +useragent=VoIP Conference Bridge
 +dtmfmode = auto                 ; Set default dtmfmode for sending DTMF. Default: rfc2833
 +register => username:​password@sip.domain/​username;​
 +domain=sip.domain,​conference
 +fromdomain=sip.domain
 +
 +[authentication]
 +auth = username:​password@sip.domain
 +
 +[sipproxy]
 +type=friend
 +user=phone
 +host=sip.domain
 +realm=sip.domain
 +fromdomain=sip.domain
 +fromuser=username
 +secret=password
 +insecure=very
 +context=conference
 +authname=username
 +dtmfmode=RFC2833
 +canreinvite=no
 +username=username
 +disallow=all
 +allow=ulaw
 +</​code>​
 +
 +=== Asterisk'​s extensions.conf ===
 +
 +<​code>​
 +[mm-announce]
 +exten => 9999,​1,​Set(CALLERID(name)="​MMGETOUT"​)
 +exten => 9999,​n,​Answer
 +exten => 9999,​n,​Playback(conf-will-end-in)
 +exten => 9999,​n,​Playback(digits/​5)
 +exten => 9999,​n,​Playback(minutes)
 +exten => 9999,​n,​Hangup
 +
 +[conference]
 +;Used by cbEnd script to play end of conference warning
 +exten => _mmplay.,​1,​Answer
 +exten => _mmplay.,​2,​MeetMe(${EXTEN:​6}|dq)
 +exten => _mmplay.,​3,​Hangup
 +
 +exten => username,​1,​Answer
 +exten => username,​2,​Wait(1)
 +exten => username,​3,​CBMysql() ​       ; Validates passwords, starttime, etc
 +exten => username,​4,​Hangup
 +</​code>​
 +
 +=== Asterisk'​s cbmysql.conf ===
 +<​code>​
 +[global]
 +hostname=your_database_server
 +dbname=meetme_database
 +password=meetme_password
 +user=meetme_user
 +port=3306
 +sock=/​var/​run/​mysql/​mysql.sock
 +DBOpts=yes
 +OptsAdm=asdp
 +OptsUsr=sdp
 +ConfApp=MeetMe
 +ConfAppCount=MeetMeCount
 +; Choose one of the following to modify early join behaviour
 +earlyalert=300 ​ ; Tell the participant if they are too early (seconds)
 +;​fuzzystart= ​   ; Allow participants to join early (seconds)
 +</​code>​
 +
 +=== Database Tables ===
 +
 +Here is an output of what I found online:
 +
 +<​code>​
 +mysql> show columns from booking;
 ++-----------+-------------+------+-----+---------------------+----------------+
 +| Field     | Type        | Null | Key | Default ​            | Extra          |
 ++-----------+-------------+------+-----+---------------------+----------------+
 +| bookId ​   | int(11) ​    ​| ​     | PRI | NULL                | auto_increment |
 +| clientId ​ | int(11) ​    ​| ​     |     | 0                   ​| ​               |
 +| roomNo ​   | varchar(30) |      |     | 0                   ​| ​               |
 +| roomPass ​ | varchar(30) |      |     | 0                   ​| ​               |
 +| silPass ​  | varchar(30) |      |     | 0                   ​| ​               |
 +| startTime | datetime ​   |      |     | 0000-00-00 00:00:00 |                |
 +| endTime ​  | datetime ​   | YES  |     | 0000-00-00 00:00:00 |                |
 +| dateReq ​  | datetime ​   |      |     | 0000-00-00 00:00:00 |                |
 +| dateMod ​  | datetime ​   |      |     | 0000-00-00 00:00:00 |                |
 +| maxUser ​  | varchar(30) |      |     | 10                  |                |
 +| status ​   | varchar(30) |      |     | A                   ​| ​               |
 +| confOwner | varchar(30) |      |     ​| ​                    ​| ​               |
 +| confDesc ​ | varchar(30) |      |     ​| ​                    ​| ​               |
 +| aFlags ​   | varchar(10) |      |     ​| ​                    ​| ​               |
 +| uFlags ​   | varchar(10) |      |     ​| ​                    ​| ​               |
 ++-----------+-------------+------+-----+---------------------+----------------+
 +13 rows in set (0.00 sec)
 +
 +mysql> show columns from cdr;
 ++----------+-------------+------+-----+---------+-------+
 +| Field    | Type        | Null | Key | Default | Extra |
 ++----------+-------------+------+-----+---------+-------+
 +| bookId ​  | varchar(16) |      |     ​| ​        ​| ​      |
 +| duration | varchar(12) |      |     ​| ​        ​| ​      |
 +| CIDnum ​  | varchar(32) | YES  |     | NULL    |       |
 +| CIDname ​ | varchar(32) | YES  |     | NULL    |       |
 ++----------+-------------+------+-----+---------+-------+
 +4 rows in set (0.00 sec)
 +
 +</​code>​
 +
 +I have posted this here because I fear that it will be removed. Here is the original link:
 +http://​www.fitawi.com/​Asterisk/​db-tables-v4.txt
 +
 +This is a work in progress, will be completed more in the next few days.
 +
 +Mike Williams
 +mikebwilliams@gmail.com
 +
 +
 +
 +