Update to 1.4.7
Requires a patch to pthread call.
--
Index: packages/net/asterisk-addons-1.4.x/patches/031-pthread_param.patch
===================================================================
--- packages/net/asterisk-addons-1.4.x/patches/031-pthread_param.patch
(revision 0)
+++ packages/net/asterisk-addons-1.4.x/patches/031-pthread_param.patch
(revision 0)
@@ -0,0 +1,19 @@
+*** asterisk-addons-1.4.7/channels/ooh323c/src/ooCmdChannel.c.orig
2008-06-27
18:12:50.000000000 +0800
+--- asterisk-addons-1.4.7/channels/ooh323c/src/ooCmdChannel.c 2008-06-27
18:12:11.000000000
+0800
+***************
+*** 37,43 ****
+ if ((ret = pipe(thePipe)) == -1) {
+ return OO_FAILED;
+ }
+! pthread_mutex_init(&gCmdChanLock);
+
+ gH323ep.cmdSock = dup(thePipe[0]);
+ close(thePipe[0]);
+--- 37,43 ----
+ if ((ret = pipe(thePipe)) == -1) {
+ return OO_FAILED;
+ }
+! pthread_mutex_init(&gCmdChanLock, NULL);
+
+ gH323ep.cmdSock = dup(thePipe[0]);
+ close(thePipe[0]);
Index: packages/net/asterisk-addons-1.4.x/patches/021-cross_configure.patch
===================================================================
--- packages/net/asterisk-addons-1.4.x/patches/021-cross_configure.patch
(revision 11372)
+++ packages/net/asterisk-addons-1.4.x/patches/021-cross_configure.patch
(working copy)
@@ -1,12 +1,12 @@
-diff -ruN asterisk-addons-1.4.2-old/menuselect/Makefile
asterisk-addons-1.4.2-new/menuselect/Makefile
---- asterisk-addons-1.4.2-old/menuselect/Makefile 2007-06-06
00:01:45.000000000 +0200
-+++ asterisk-addons-1.4.2-new/menuselect/Makefile 2007-09-19
18:00:27.000000000 +0200
-@@ -42,7 +42,7 @@
- @$(MAKE) menuselect
+diff -Nru asterisk-addons-1.4.5.org/menuselect/Makefile
asterisk-addons-1.4.5/menuselect/Makefile
+--- asterisk-addons-1.4.5.org/menuselect/Makefile 2007-11-21
01:17:33.000000000 +0100
++++ asterisk-addons-1.4.5/menuselect/Makefile 2007-12-20 22:47:17.000000000
+0100
+@@ -51,7 +51,7 @@
+ $(OBJS) menuselect_gtk.o menuselect_curses.o menuselect_stub.o: autoconfig.h
menuselect.h
- autoconfig.h:
-- @./configure $(CONFIGURE_SILENT) CC= LD= AR=
-+ @./configure $(CONFIGURE_SILENT) CC= LD= AR= LDFLAGS=
+ makeopts autoconfig.h: autoconfig.h.in makeopts.in
+- @./configure $(CONFIGURE_SILENT) CC= LD= AR= CFLAGS=
++ @./configure $(CONFIGURE_SILENT) CC= LD= AR= CFLAGS= LDFLAGS=
- _gmenuselect: autoconfig.h
- @$(MAKE) gmenuselect
+ menuselect gmenuselect: mxml/libmxml.a
+
Index: packages/net/asterisk-addons-1.4.x/patches/011-chan_mobile.patch
===================================================================
--- packages/net/asterisk-addons-1.4.x/patches/011-chan_mobile.patch
(revision 11372)
+++ packages/net/asterisk-addons-1.4.x/patches/011-chan_mobile.patch
(working copy)
@@ -1,398 +1,13 @@
-diff -Nru asterisk-addons-1.4.2/build_tools/menuselect-deps.in
asterisk-addons-svn/build_tools/menuselect-deps.in
---- asterisk-addons-1.4.2/build_tools/menuselect-deps.in 2007-05-14
18:22:44.000000000 +0200
-+++ asterisk-addons-svn/build_tools/menuselect-deps.in 2007-06-04
19:10:59.000000000 +0200
+diff -Nru asterisk-addons-1.4.6.org/build_tools/menuselect-deps.in
asterisk-addons-1.4.6/build_tools/menuselect-deps.in
+--- asterisk-addons-1.4.6.org/build_tools/menuselect-deps.in 2007-05-14
18:22:44.000000000
+0200
++++ asterisk-addons-1.4.6/build_tools/menuselect-deps.in 2008-03-06
08:38:14.000000000 +0100
@@ -1,2 +1,3 @@
[EMAIL PROTECTED]@
[EMAIL PROTECTED]@
[EMAIL PROTECTED]@
-diff -Nru asterisk-addons-1.4.2/configs/mobile.conf.sample
asterisk-addons-svn/configs/mobile.conf.sample
---- asterisk-addons-1.4.2/configs/mobile.conf.sample 1970-01-01
01:00:00.000000000 +0100
-+++ asterisk-addons-svn/configs/mobile.conf.sample 2007-06-04
19:11:00.000000000 +0200
-@@ -0,0 +1,30 @@
-+;
-+; mobile.conf
-+;
-+
-+[general]
-+interval=60 ; Number of seconds between trying to connect to
devices.
-+
-+; The following is a list of the devices we deal with.
-+; Every device listed below will be available for calls in and out of
Asterisk.
-+; Discovered devices not in this list are not available.
-+; Use the CLI command 'mobile search' to discover devices.
-+; Use the CLI command 'mobile show devices' to see device status.
-+;
-+; To place out through a cell phone use Dial(Mobile/[device]/NNN.....) in
your dialplan.
-+; To call a headset use Dial(Mobile/[device]).
-+
-+;[dave]
-+;address=00:12:56:90:6E:00
-+;port=4
-+;context=incoming-mobile
-+
-+;[blackberry]
-+;address=00:0F:86:0E:AE:42
-+;port=2
-+;context=incoming-mobile
-+
-+;[headset]
-+;address=00:0B:9E:11:74:A5
-+;port=1
-+;type=headset
-diff -Nru asterisk-addons-1.4.2/configure.ac asterisk-addons-svn/configure.ac
---- asterisk-addons-1.4.2/configure.ac 2007-05-14 18:22:44.000000000 +0200
-+++ asterisk-addons-svn/configure.ac 2007-06-04 19:11:00.000000000 +0200
-@@ -17,7 +17,7 @@
- AC_CONFIG_SRCDIR([res_config_mysql.c])
-
- AC_COPYRIGHT("Asterisk-addons")
--AC_REVISION($Revision: 382 $)
-+AC_REVISION($Revision: 384 $)
-
- case "${host}" in
- *freebsd*)
-@@ -159,13 +159,14 @@
- # from here on down, library checking should be done in alphabetical order
- # by the --with option name, to make things easier for the users :-)
-
-+AST_EXT_LIB_SETUP([BLUETOOTH], [Bluetooth Support], [bluetooth])
- AST_EXT_LIB_SETUP([CURSES], [curses], [curses])
- AST_EXT_LIB_SETUP([NCURSES], [ncurses], [ncurses])
- AST_EXT_LIB_SETUP([MYSQLCLIENT], [mysqlclient], [mysqlclient])
- AST_EXT_LIB_SETUP([ASTERISK], [asterisk], [asterisk])
-
-+AST_EXT_LIB_CHECK([BLUETOOTH], [bluetooth], [ba2str], [bluetooth/bluetooth.h])
- AST_EXT_LIB_CHECK([CURSES], [curses], [initscr], [curses.h])
--
- AST_EXT_LIB_CHECK([NCURSES], [ncurses], [initscr], [curses.h])
-
- MYSQL_CONFIG=No
-diff -Nru asterisk-addons-1.4.2/doc/chan_mobile.txt
asterisk-addons-svn/doc/chan_mobile.txt
---- asterisk-addons-1.4.2/doc/chan_mobile.txt 1970-01-01 01:00:00.000000000
+0100
-+++ asterisk-addons-svn/doc/chan_mobile.txt 2007-06-04 19:11:00.000000000
+0200
-@@ -0,0 +1,262 @@
-+chan_mobile
-+
-+Asterisk Channel Driver to allow Bluetooth Cell/Mobile Phones to be used as
FXO devices, and
Headsets as FXS devices.
-+
-+Features :-
-+
-+Multiple cell phones can be connected.
-+Multiple headsets can be connected.
-+Asterisk automatically connects to each configured cell phone / headset when
it comes in range.
-+CLI command to discover bluetooth devices.
-+Inbound calls on the cell network to the cell phones are handled by Asterisk,
just like inbound calls
on a Zap channel.
-+CLI passed through on inbound calls.
-+Dial outbound on a cell phone using Dial(Mobile/device/nnnnnnn) in the
dialplan.
-+Dial a headset using Dial(Mobile/device) in the dialplan.
-+Application MobileStatus can be used in the dialplan to see if a cell phone /
headset is connected.
-+Supports devicestate for dialplan hinting.
-+Supports Inbound and Outbound SMS.
-+
-+Using chan_mobile :-
-+
-+In order to use chan_mobile, you must have a working bluetooth subsystem on
your Asterisk box.
-+This means a working bluetooth adapter, and the BlueZ packages.
-+
-+Any bluetooth adapter supported by the Linux kernel will do, including usb
bluetooth dongles.
-+
-+The BlueZ package you need is bluez-utils. If you are using a GUI then you
might want to install
bluez-pin also.
-+You also need libbluetooth, and libbluetooth-dev if you are compiling
Asterisk from source.
-+
-+You need to get bluetooth working with your phone before attempting to use
chan_mobile.
-+This means 'pairing' your phone with your Asterisk box. I dont describe how
to do this here as the
process
-+differs from distro to distro. You only need to pair once.
-+
-+However, the easist way to pair, is to use you cell phone to search for
bluetooth devices, select
your Asterisk box
-+and enter the requested PIN.
-+
-+See www.bluez.org for other details about setting up Bluetooth under Linux.
-+
-+Assuming you have bluetooth working ok:-
-+
-+Load chan_mobile.so
-+
-+Search for your bluetooth devices using the CLI command 'mobile search'. Be
patient with this
command as
-+it will take 8 - 10 seconds to do the discovery.
-+
-+Headsets will generally have to be put into 'pairing' mode before they will
show up here.
-+
-+This will return something like the following :-
-+
-+*CLI> mobile search
-+Address Name Usable Type Port
-+00:12:56:90:6E:00 LG TU500 Yes Phone 4
-+00:80:C8:35:52:78 Toaster No Headset 0
-+00:0B:9E:11:74:A5 Hello II Plus Yes Headset 1
-+00:0F:86:0E:AE:42 Daves Blackberry Yes Phone 7
-+
-+This is a list of all bluetooth devices seen and whether or not they are
usable with chan_cellphone.
-+The Address field contains the 'bd address' of the device. This is like an
ethernet mac address.
-+The Name field is whatever is configured into the device as its name.
-+The Usable field tells you whether or not the device supports the Bluetooth
Handsfree Profile or
Headset profile.
-+The Type field tells you whether the device is usable as a Phone line (FXO)
or a headset (FXS)
-+The Port field is the number to put in the configuration file.
-+
-+Choose which device(s) you want to use and edit /etc/asterisk/mobile.conf.
There is a sample
included
-+with the Asterisk source under configs/mobile.conf.sample.
-+
-+Assuming we want to use the devices above, mobile.conf needs to look like
this :-
-+
-+===================================================================================
-+;
-+; mobile.conf
-+;
-+
-+[general]
-+interval=60 ; Number of seconds between trying to connect to
devices.
-+
-+; The following is a list of the devices we deal with.
-+; Every device listed below will be available for calls in and out of
Asterisk.
-+; Discovered devices not in this list are not available.
-+; Use the CLI command 'mobile search' to discover devices.
-+; Use the CLI command 'mobile show devices' to see device status.
-+;
-+; To place a call use Dial(Mobile/[device]/NNN.....) in your dialplan.
-+
-+[dave]
-+address=00:12:56:90:6E:00
-+port=4
-+context=incoming-mobile
-+
-+[headset]
-+address=00:0B:9E:11:74:A5
-+port=1
-+type=headset
-+===================================================================================
-+
-+Be sure to configure the right bd address and port number from the search. If
you want inbound
-+calls on a device to go to a specific context, add a context= line, otherwise
the default will
-+be used. The 'id' of the device [bitinbrackets] can be anything you like,
just make the unique.
-+
-+If your are configuring a Headset be sure to include the type=headset line,
if left out it defaults
-+to phone.
-+
-+Having done this, unload chan_mobile and load it again.
-+
-+The CLI command 'mobile show devices' can be used at any time to show the
status of configured
devices,
-+and whether or not the device is capable of sending / receiving SMS via
bluetooth.
-+
-+*CLI> mobile show devices
-+ID Address Connected State SMS
-+blackberry 00:0F:86:0E:AE:42 Yes Free Yes
-+dave 00:12:56:90:6E:00 Yes Free No
-+headset 00:0B:9E:11:74:A5 Yes Free No
-+*CLI>
-+
-+
-+All being well Asterisk will now try and establish a connection to each
configured device. If it cant
-+it will retry after 'interval' seconds, infinately.
-+
-+This means that as your cell phone comes into range and goes out of range,
Asterisk will
automatically
-+connect and disconnect from it. You dont need to worry about it.
-+
-+As each phone is connected you will see a message on the Asterisk console :-
-+
-+ Loaded chan_mobile.so => (Bluetooth Mobile Device Channel Driver)
-+ -- Bluetooth Device blackberry has connected.
-+ -- Bluetooth Device dave has connected.
-+
-+If someone calls your cell phone now, Asterisk will handle the call and it
will be sent into the
-+context you specified, or the default context. Mostly likely this means some
SIP phone somewhere
will
-+ring, pick it up and take the call.
-+
-+To make outbound calls, add something to you Dialplan like the following :-
(modify to suit)
-+
-+; Calls via TU500
-+exten => _9X.,1,Dial(Mobile/dave/${EXTEN:1},45)
-+exten => _9X.,n,Hangup
-+; Calls via Blackberry
-+exten => _8X.,1,Dial(Mobile/blackberry/${EXTEN:1},45)
-+exten => _8X.,n,Hangup
-+
-+Pick up a SIP phone and dial 9<number of pizza shop> and the call vill go via
the device 'dave' in
-+mobile.conf.
-+
-+To incoming calls to a headset do something like this :-
-+
-+[incoming-context]
-+exten => s,1,Dial(Mobile/headset,30)
-+exten => s,n,Hangup()
-+
-+To dial out on a headset, you need to use some other mechanism, because the
headset is not
likely
-+to have all the needed buttons on it. res_clioriginate is good for this :-
-+
-+*CLI> originate Mobile/headset extension [EMAIL PROTECTED]
-+
-+This will call your headset, once you answer Asterisk will call NNNNN at
context context
-+
-+Dialplan hints :-
-+
-+chan_mobile supports 'device status' so you can do somthing like
-+
-+exten => 1234,hint,SIP/30&Mobile/dave&Mobile/blackberry
-+
-+
-+MobileStatus Application :-
-+
-+chan_mobile also registers an application named MobileStatus. You can use
this in your Dialplan
-+to determine the 'state' of a device.
-+
-+For example, suppose you wanted to call dave's extension, but only if he was
in the office. You
could
-+test to see if his cell phone was attached to Asterisk, if it is dial his
extension, otherwise dial his
-+cell phone.
-+
-+exten => 40,1,MobileStatus(dave,DAVECELL)
-+exten => 40,2,GotoIf($["${DAVECELL}" = "1"]?3:5)
-+exten => 40,3,Dial(ZAP/g1/0427466412,45,tT)
-+exten => 40,4,Hangup
-+exten => 40,5,Dial(SIP/40,45,tT)
-+exten => 40,6,Hangup
-+
-+MobileStatus sets the value of the given variable to :-
-+
-+1 = Disconnected. i.e. Device not in range of Asterisk, or turned off etc etc
-+2 = Connected and Not on a call. i.e. Free
-+3 = Connected and on a call. i.e. Busy
-+
-+
-+SMS Sending / Receiving
-+
-+If Asterisk has detected your cell phone is capable of SMS via bluetooth, you
will be able to send
and
-+receive SMS.
-+
-+Incoming SMS's cause Asterisk to create an inbound call to the context you
defined in mobile.conf
or the default
-+context if you did not define one. The call will start at extension 'sms'.
Two channel variables will be
available,
-+SMSSRC = the number of the originator of the SMS and SMSTXT which is the text
of the SMS.
-+This is not a voice call, so grab the values of the variables and hang the
call up.
-+
-+So, to handle incoming SMS's, do something like the following in your dialplan
-+
-+[incoming-mobile]
-+exten => sms,1,Verbose(Incoming SMS from ${SMSSRC} ${SMSTXT})
-+exten => sms,n,Hangup()
-+
-+The above will just print the message on the console.
-+
-+If you use res_jabber, you could do something like this :-
-+
-+[incoming-mobile]
-+exten => sms,1,JabberSend(transport,[EMAIL PROTECTED],SMS from ${SMSRC}
${SMSTXT})
-+exten => sms,2,Hangup()
-+
-+To send an SMS, use the application MobileSendSMS like the following :-
-+
-+exten => 99,1,MobileSendSMS(dave,0427123456,Hello World)
-+
-+This will send 'Hello World' via device 'dave' to '0427123456'
-+
-+
-+DTMF Debouncing :-
-+
-+DTMF detection varies from phone to phone. There is a configuration variable
that allows you to
tune
-+this to your needs. e.g. in mobile.conf
-+
-+[dave]
-+address=00:12:56:90:6E:00
-+port=4
-+context=incoming-mobile
-+dtmfskip=50
-+
-+change dtmfskip to suit your phone. The default is 200. The larger the
number, the more chance of
missed DTMF.
-+The smaller the number the more chance of multiple digits being detected.
-+
-+
-+Debugging :-
-+
-+Different phone manufacturers have different interpretations of the Bluetooth
Handsfree Profile
Spec.
-+This means that not all phones work the same way, particularly in the
connection setup /
initialisation
-+sequence. I've tried to make chan_cellphone as general as possible, but it
may need modification
to
-+support some phone i've never tested.
-+
-+The RIM Blackberry 7250 works extremely well. So does the LG TU500.
-+
-+Some phones, most notably Sony Ericsson 'T' series, dont quite conform to the
Bluetooth HFP
spec.
-+chan_mobile will detect these and adapt accordingly. The T-610 and T-630 have
been tested and
-+work fine.
-+
-+If your phone doesnt behave has expected, turn on Asterisk debugging with
'core set debug 1'.
-+
-+This will log a bunch of debug messages indicating what the phone is doing,
importantly the
rfcomm
-+conversation between Asterisk and the phone. This can be used to sort out
what your phone is
doing
-+and make chan_mobile support it.
-+
-+Be aware also, that just about all cell phones behave differently. For
example my LG TU500 wont
dial unless
-+the phone is a the 'idle' screen. i.e. if the phone is showing a 'menu' on
the display, when you dial
via
-+Asterisk, the call will not work. chan_mobile handles this, but there may be
other phones that do
-+other things too...
-+
-+Important: Watch what your cell phone is doing the first few times. Asterisk
wont make random calls
but
-+if chan_mobile fails to hangup for some reason and you get a huge bill from
your telco, dont blame
me.
-+
-+
-+Feedback, Support, Please can you make Cell Phone X work... etc :-
-+
-+email me at david.bowerman at gmail.com or dseeb_ on #asterisk &
#asterisk-dev irc.
-diff -Nru asterisk-addons-1.4.2/Makefile asterisk-addons-svn/Makefile
---- asterisk-addons-1.4.2/Makefile 2007-06-06 00:05:09.000000000 +0200
-+++ asterisk-addons-svn/Makefile 2007-07-28 15:12:17.000000000 +0200
-@@ -49,7 +49,7 @@
- endif
- MODULES_DIR=$(ASTLIBDIR)/modules
-
--MODS:=app_addon_sql_mysql app_saycountpl cdr_addon_mysql chan_ooh323
format_mp3
res_config_mysql
-+MODS:=app_addon_sql_mysql app_saycountpl cdr_addon_mysql chan_ooh323
format_mp3
res_config_mysql chan_mobile
-
- SELECTED_MODS:=$(patsubst %,%.so,$(filter-out $(MENUSELECT_ADDONS),$(MODS)))
-
-@@ -143,6 +143,9 @@
- app_addon_sql_mysql.so: app_addon_sql_mysql.o
- $(CC) $(SOLINK) -o $@ $< $(MYSQLCLIENT_LIB)
-
-+chan_mobile.so: chan_mobile.o
-+ $(CC) $(SOLINK) -o $@ $< $(BLUETOOTH_LIB)
-+
- chan_ooh323.so:
- @if [ ! -f asterisk-ooh323c/Makefile ] ; then \
- cd asterisk-ooh323c && ./configure ; \
-@@ -186,6 +189,8 @@
- menuselect.makeopts menuselect.makedeps: menuselect/menuselect menuselect-tree
- @menuselect/menuselect --check-deps $(GLOBAL_MAKEOPTS) $(USER_MAKEOPTS)
menuselect.makeopts
-
-+menuconfig: menuselect
-+
- menuselect: menuselect/menuselect menuselect-tree
- [EMAIL PROTECTED]/menuselect $(GLOBAL_MAKEOPTS) $(USER_MAKEOPTS)
menuselect.makeopts &&
echo "menuselect changes saved!" || echo "menuselect changes NOT saved!"
-
-diff -Nru asterisk-addons-1.4.2/makeopts.in asterisk-addons-svn/makeopts.in
---- asterisk-addons-1.4.2/makeopts.in 2007-05-14 18:22:44.000000000 +0200
-+++ asterisk-addons-svn/makeopts.in 2007-06-04 19:11:00.000000000 +0200
-@@ -33,6 +33,9 @@
- sharedstatedir = @sharedstatedir@
- sysconfdir = @sysconfdir@
-
[EMAIL PROTECTED]@
[EMAIL PROTECTED]@
-+
- [EMAIL PROTECTED]@
- [EMAIL PROTECTED]@
-
-diff -Nru asterisk-addons-1.4.2/menuselect-tree
asterisk-addons-svn/menuselect-tree
---- asterisk-addons-1.4.2/menuselect-tree 2007-05-14 18:22:44.000000000
+0200
-+++ asterisk-addons-svn/menuselect-tree 2007-06-04 19:11:00.000000000
+0200
-@@ -13,6 +13,10 @@
- <depend>mysqlclient</depend>
- <depend>asterisk</depend>
- </member>
-+ <member name="chan_mobile" remove_on_change="chan_mobile.so
chan_mobile.o"
displayname="Bluetooth Mobile Device channel driver">
-+ <depend>bluetooth</depend>
-+ <depend>asterisk</depend>
-+ </member>
- <member name="chan_ooh323" displayname="Objective Systems H.323
Channel Driver">
- <depend>asterisk</depend>
- </member>
---- asterisk-addons-1.4.2/chan_mobile.c 1970-01-01 01:00:00.000000000
+0100
-+++ asterisk-addons-svn/chan_mobile.c 2007-07-29 13:30:43.000000000 +0200
+diff -Nru asterisk-addons-1.4.6.org/channels/chan_mobile.c
asterisk-addons-1.4.6/channels/chan_mobile.c
+--- asterisk-addons-1.4.6.org/channels/chan_mobile.c 1970-01-01
01:00:00.000000000 +0100
++++ asterisk-addons-1.4.6/channels/chan_mobile.c 2008-03-06
08:38:57.000000000 +0100
@@ -0,0 +1,1867 @@
+/*
+ * Asterisk -- An open source telephony toolkit.
@@ -2261,3 +1876,347 @@
+ .unload = unload_module,
+ .reload = reload_module,
+);
+diff -Nru asterisk-addons-1.4.6.org/configs/mobile.conf.sample
asterisk-addons-1.4.6/configs/mobile.conf.sample
+--- asterisk-addons-1.4.6.org/configs/mobile.conf.sample 1970-01-01
01:00:00.000000000 +0100
++++ asterisk-addons-1.4.6/configs/mobile.conf.sample 2008-03-06
08:38:14.000000000 +0100
+@@ -0,0 +1,30 @@
++;
++; mobile.conf
++;
++
++[general]
++interval=60 ; Number of seconds between trying to connect to
devices.
++
++; The following is a list of the devices we deal with.
++; Every device listed below will be available for calls in and out of
Asterisk.
++; Discovered devices not in this list are not available.
++; Use the CLI command 'mobile search' to discover devices.
++; Use the CLI command 'mobile show devices' to see device status.
++;
++; To place out through a cell phone use Dial(Mobile/[device]/NNN.....) in
your dialplan.
++; To call a headset use Dial(Mobile/[device]).
++
++;[dave]
++;address=00:12:56:90:6E:00
++;port=4
++;context=incoming-mobile
++
++;[blackberry]
++;address=00:0F:86:0E:AE:42
++;port=2
++;context=incoming-mobile
++
++;[headset]
++;address=00:0B:9E:11:74:A5
++;port=1
++;type=headset
+diff -Nru asterisk-addons-1.4.6.org/configure.ac
asterisk-addons-1.4.6/configure.ac
+--- asterisk-addons-1.4.6.org/configure.ac 2008-02-13 23:58:11.000000000
+0100
++++ asterisk-addons-1.4.6/configure.ac 2008-03-06 08:38:14.000000000 +0100
+@@ -161,13 +161,14 @@
+ # from here on down, library checking should be done in alphabetical order
+ # by the --with option name, to make things easier for the users :-)
+
++AST_EXT_LIB_SETUP([BLUETOOTH], [Bluetooth Support], [bluetooth])
+ AST_EXT_LIB_SETUP([CURSES], [curses], [curses])
+ AST_EXT_LIB_SETUP([NCURSES], [ncurses], [ncurses])
+ AST_EXT_LIB_SETUP([MYSQLCLIENT], [mysqlclient], [mysqlclient])
+ AST_EXT_LIB_SETUP([ASTERISK], [asterisk], [asterisk])
+
++AST_EXT_LIB_CHECK([BLUETOOTH], [bluetooth], [ba2str], [bluetooth/bluetooth.h])
+ AST_EXT_LIB_CHECK([CURSES], [curses], [initscr], [curses.h])
+-
+ AST_EXT_LIB_CHECK([NCURSES], [ncurses], [initscr], [curses.h])
+
+ MYSQL_CONFIG=No
+diff -Nru asterisk-addons-1.4.6.org/doc/chan_mobile.txt
asterisk-addons-1.4.6/doc/chan_mobile.txt
+--- asterisk-addons-1.4.6.org/doc/chan_mobile.txt 1970-01-01
01:00:00.000000000 +0100
++++ asterisk-addons-1.4.6/doc/chan_mobile.txt 2008-03-06 08:38:14.000000000
+0100
+@@ -0,0 +1,262 @@
++chan_mobile
++
++Asterisk Channel Driver to allow Bluetooth Cell/Mobile Phones to be used as
FXO devices, and
Headsets as FXS devices.
++
++Features :-
++
++Multiple cell phones can be connected.
++Multiple headsets can be connected.
++Asterisk automatically connects to each configured cell phone / headset when
it comes in range.
++CLI command to discover bluetooth devices.
++Inbound calls on the cell network to the cell phones are handled by Asterisk,
just like inbound
calls on a Zap channel.
++CLI passed through on inbound calls.
++Dial outbound on a cell phone using Dial(Mobile/device/nnnnnnn) in the
dialplan.
++Dial a headset using Dial(Mobile/device) in the dialplan.
++Application MobileStatus can be used in the dialplan to see if a cell phone /
headset is connected.
++Supports devicestate for dialplan hinting.
++Supports Inbound and Outbound SMS.
++
++Using chan_mobile :-
++
++In order to use chan_mobile, you must have a working bluetooth subsystem on
your Asterisk box.
++This means a working bluetooth adapter, and the BlueZ packages.
++
++Any bluetooth adapter supported by the Linux kernel will do, including usb
bluetooth dongles.
++
++The BlueZ package you need is bluez-utils. If you are using a GUI then you
might want to install
bluez-pin also.
++You also need libbluetooth, and libbluetooth-dev if you are compiling
Asterisk from source.
++
++You need to get bluetooth working with your phone before attempting to use
chan_mobile.
++This means 'pairing' your phone with your Asterisk box. I dont describe how
to do this here as the
process
++differs from distro to distro. You only need to pair once.
++
++However, the easist way to pair, is to use you cell phone to search for
bluetooth devices, select
your Asterisk box
++and enter the requested PIN.
++
++See www.bluez.org for other details about setting up Bluetooth under Linux.
++
++Assuming you have bluetooth working ok:-
++
++Load chan_mobile.so
++
++Search for your bluetooth devices using the CLI command 'mobile search'. Be
patient with this
command as
++it will take 8 - 10 seconds to do the discovery.
++
++Headsets will generally have to be put into 'pairing' mode before they will
show up here.
++
++This will return something like the following :-
++
++*CLI> mobile search
++Address Name Usable Type Port
++00:12:56:90:6E:00 LG TU500 Yes Phone 4
++00:80:C8:35:52:78 Toaster No Headset 0
++00:0B:9E:11:74:A5 Hello II Plus Yes Headset 1
++00:0F:86:0E:AE:42 Daves Blackberry Yes Phone 7
++
++This is a list of all bluetooth devices seen and whether or not they are
usable with
chan_cellphone.
++The Address field contains the 'bd address' of the device. This is like an
ethernet mac address.
++The Name field is whatever is configured into the device as its name.
++The Usable field tells you whether or not the device supports the Bluetooth
Handsfree Profile or
Headset profile.
++The Type field tells you whether the device is usable as a Phone line (FXO)
or a headset (FXS)
++The Port field is the number to put in the configuration file.
++
++Choose which device(s) you want to use and edit /etc/asterisk/mobile.conf.
There is a sample
included
++with the Asterisk source under configs/mobile.conf.sample.
++
++Assuming we want to use the devices above, mobile.conf needs to look like
this :-
++
++===================================================================================
++;
++; mobile.conf
++;
++
++[general]
++interval=60 ; Number of seconds between trying to connect to
devices.
++
++; The following is a list of the devices we deal with.
++; Every device listed below will be available for calls in and out of
Asterisk.
++; Discovered devices not in this list are not available.
++; Use the CLI command 'mobile search' to discover devices.
++; Use the CLI command 'mobile show devices' to see device status.
++;
++; To place a call use Dial(Mobile/[device]/NNN.....) in your dialplan.
++
++[dave]
++address=00:12:56:90:6E:00
++port=4
++context=incoming-mobile
++
++[headset]
++address=00:0B:9E:11:74:A5
++port=1
++type=headset
++===================================================================================
++
++Be sure to configure the right bd address and port number from the search. If
you want inbound
++calls on a device to go to a specific context, add a context= line, otherwise
the default will
++be used. The 'id' of the device [bitinbrackets] can be anything you like,
just make the unique.
++
++If your are configuring a Headset be sure to include the type=headset line,
if left out it defaults
++to phone.
++
++Having done this, unload chan_mobile and load it again.
++
++The CLI command 'mobile show devices' can be used at any time to show the
status of configured
devices,
++and whether or not the device is capable of sending / receiving SMS via
bluetooth.
++
++*CLI> mobile show devices
++ID Address Connected State SMS
++blackberry 00:0F:86:0E:AE:42 Yes Free Yes
++dave 00:12:56:90:6E:00 Yes Free No
++headset 00:0B:9E:11:74:A5 Yes Free No
++*CLI>
++
++
++All being well Asterisk will now try and establish a connection to each
configured device. If it cant
++it will retry after 'interval' seconds, infinately.
++
++This means that as your cell phone comes into range and goes out of range,
Asterisk will
automatically
++connect and disconnect from it. You dont need to worry about it.
++
++As each phone is connected you will see a message on the Asterisk console :-
++
++ Loaded chan_mobile.so => (Bluetooth Mobile Device Channel Driver)
++ -- Bluetooth Device blackberry has connected.
++ -- Bluetooth Device dave has connected.
++
++If someone calls your cell phone now, Asterisk will handle the call and it
will be sent into the
++context you specified, or the default context. Mostly likely this means some
SIP phone somewhere
will
++ring, pick it up and take the call.
++
++To make outbound calls, add something to you Dialplan like the following :-
(modify to suit)
++
++; Calls via TU500
++exten => _9X.,1,Dial(Mobile/dave/${EXTEN:1},45)
++exten => _9X.,n,Hangup
++; Calls via Blackberry
++exten => _8X.,1,Dial(Mobile/blackberry/${EXTEN:1},45)
++exten => _8X.,n,Hangup
++
++Pick up a SIP phone and dial 9<number of pizza shop> and the call vill go via
the device 'dave' in
++mobile.conf.
++
++To incoming calls to a headset do something like this :-
++
++[incoming-context]
++exten => s,1,Dial(Mobile/headset,30)
++exten => s,n,Hangup()
++
++To dial out on a headset, you need to use some other mechanism, because the
headset is not
likely
++to have all the needed buttons on it. res_clioriginate is good for this :-
++
++*CLI> originate Mobile/headset extension [EMAIL PROTECTED]
++
++This will call your headset, once you answer Asterisk will call NNNNN at
context context
++
++Dialplan hints :-
++
++chan_mobile supports 'device status' so you can do somthing like
++
++exten => 1234,hint,SIP/30&Mobile/dave&Mobile/blackberry
++
++
++MobileStatus Application :-
++
++chan_mobile also registers an application named MobileStatus. You can use
this in your Dialplan
++to determine the 'state' of a device.
++
++For example, suppose you wanted to call dave's extension, but only if he was
in the office. You
could
++test to see if his cell phone was attached to Asterisk, if it is dial his
extension, otherwise dial his
++cell phone.
++
++exten => 40,1,MobileStatus(dave,DAVECELL)
++exten => 40,2,GotoIf($["${DAVECELL}" = "1"]?3:5)
++exten => 40,3,Dial(ZAP/g1/0427466412,45,tT)
++exten => 40,4,Hangup
++exten => 40,5,Dial(SIP/40,45,tT)
++exten => 40,6,Hangup
++
++MobileStatus sets the value of the given variable to :-
++
++1 = Disconnected. i.e. Device not in range of Asterisk, or turned off etc etc
++2 = Connected and Not on a call. i.e. Free
++3 = Connected and on a call. i.e. Busy
++
++
++SMS Sending / Receiving
++
++If Asterisk has detected your cell phone is capable of SMS via bluetooth, you
will be able to send
and
++receive SMS.
++
++Incoming SMS's cause Asterisk to create an inbound call to the context you
defined in mobile.conf
or the default
++context if you did not define one. The call will start at extension 'sms'.
Two channel variables will
be available,
++SMSSRC = the number of the originator of the SMS and SMSTXT which is the text
of the SMS.
++This is not a voice call, so grab the values of the variables and hang the
call up.
++
++So, to handle incoming SMS's, do something like the following in your dialplan
++
++[incoming-mobile]
++exten => sms,1,Verbose(Incoming SMS from ${SMSSRC} ${SMSTXT})
++exten => sms,n,Hangup()
++
++The above will just print the message on the console.
++
++If you use res_jabber, you could do something like this :-
++
++[incoming-mobile]
++exten => sms,1,JabberSend(transport,[EMAIL PROTECTED],SMS from ${SMSRC}
${SMSTXT})
++exten => sms,2,Hangup()
++
++To send an SMS, use the application MobileSendSMS like the following :-
++
++exten => 99,1,MobileSendSMS(dave,0427123456,Hello World)
++
++This will send 'Hello World' via device 'dave' to '0427123456'
++
++
++DTMF Debouncing :-
++
++DTMF detection varies from phone to phone. There is a configuration variable
that allows you to
tune
++this to your needs. e.g. in mobile.conf
++
++[dave]
++address=00:12:56:90:6E:00
++port=4
++context=incoming-mobile
++dtmfskip=50
++
++change dtmfskip to suit your phone. The default is 200. The larger the
number, the more chance
of missed DTMF.
++The smaller the number the more chance of multiple digits being detected.
++
++
++Debugging :-
++
++Different phone manufacturers have different interpretations of the Bluetooth
Handsfree Profile
Spec.
++This means that not all phones work the same way, particularly in the
connection setup /
initialisation
++sequence. I've tried to make chan_cellphone as general as possible, but it
may need modification
to
++support some phone i've never tested.
++
++The RIM Blackberry 7250 works extremely well. So does the LG TU500.
++
++Some phones, most notably Sony Ericsson 'T' series, dont quite conform to the
Bluetooth HFP
spec.
++chan_mobile will detect these and adapt accordingly. The T-610 and T-630 have
been tested and
++work fine.
++
++If your phone doesnt behave has expected, turn on Asterisk debugging with
'core set debug 1'.
++
++This will log a bunch of debug messages indicating what the phone is doing,
importantly the
rfcomm
++conversation between Asterisk and the phone. This can be used to sort out
what your phone is
doing
++and make chan_mobile support it.
++
++Be aware also, that just about all cell phones behave differently. For
example my LG TU500 wont
dial unless
++the phone is a the 'idle' screen. i.e. if the phone is showing a 'menu' on
the display, when you dial
via
++Asterisk, the call will not work. chan_mobile handles this, but there may be
other phones that do
++other things too...
++
++Important: Watch what your cell phone is doing the first few times. Asterisk
wont make random
calls but
++if chan_mobile fails to hangup for some reason and you get a huge bill from
your telco, dont blame
me.
++
++
++Feedback, Support, Please can you make Cell Phone X work... etc :-
++
++email me at david.bowerman at gmail.com or dseeb_ on #asterisk &
#asterisk-dev irc.
+diff -Nru asterisk-addons-1.4.6.org/Makefile asterisk-addons-1.4.6/Makefile
+--- asterisk-addons-1.4.6.org/Makefile 2008-02-13 23:58:11.000000000 +0100
++++ asterisk-addons-1.4.6/Makefile 2008-03-06 08:38:14.000000000 +0100
+@@ -215,6 +215,8 @@
+
+ gmenuconfig: gmenuselect
+
++menuconfig: menuselect
++
+ menuselect: menuselect/menuselect menuselect-tree
+ [EMAIL PROTECTED]/menuselect $(GLOBAL_MAKEOPTS) $(USER_MAKEOPTS)
menuselect.makeopts &&
echo "menuselect changes saved!" || echo "menuselect changes NOT saved!"
+
+diff -Nru asterisk-addons-1.4.6.org/makeopts.in
asterisk-addons-1.4.6/makeopts.in
+--- asterisk-addons-1.4.6.org/makeopts.in 2008-02-13 23:58:11.000000000
+0100
++++ asterisk-addons-1.4.6/makeopts.in 2008-03-06 08:38:14.000000000 +0100
+@@ -34,6 +34,9 @@
+ sharedstatedir = @sharedstatedir@
+ sysconfdir = @sysconfdir@
+
[EMAIL PROTECTED]@
[EMAIL PROTECTED]@
++
+ [EMAIL PROTECTED]@
+ [EMAIL PROTECTED]@
+
Index: packages/net/asterisk-addons-1.4.x/Makefile
===================================================================
--- packages/net/asterisk-addons-1.4.x/Makefile (revision 11372)
+++ packages/net/asterisk-addons-1.4.x/Makefile (working copy)
@@ -9,12 +9,12 @@
include $(TOPDIR)/rules.mk
PKG_NAME:=asterisk-addons
-PKG_VERSION:=1.4.2
+PKG_VERSION:=1.4.7
PKG_RELEASE:=1
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
-PKG_SOURCE_URL:=http://ftp.digium.com/pub/asterisk/old-releases/
-PKG_MD5SUM:=c080b02e6ddc81dab6a64691af890805
+PKG_SOURCE_URL:=http://downloads.digium.com/pub/asterisk/releases/
+PKG_MD5SUM:=3b14c147101c13ca6146c41870bad97a
PKG_FIXUP = libtool
@@ -91,6 +91,7 @@
endif
CONFIGURE_ARGS += \
+ --with-asterisk="$(STAGING_DIR)/usr" \
--with-bluetooth="$(STAGING_DIR)/usr" \
--with-ncurses="$(STAGING_DIR)/usr" \
--with-mysqlclient="$(STAGING_DIR)/usr" \
@@ -110,12 +111,13 @@
MAKE_ARGS:= \
AM_CFLAGS="$(TARGET_CFLAGS)" \
- OPTIMIZE="$(TARGET_CFLAGS)" \
+ OPTIMIZE="$(TARGET_CFLAGS) -DLOW_MEMORY" \
OPTIONS="" \
+ NOISY_BUILD="yes" \
BLUETOOTH_LIB="$(TARGET_LDFLAGS) -lbluetooth" \
MAKE_VARS:= \
- CFLAGS="$(EXTRA_CFLAGS) -DLOW_MEMORY" \
+ CFLAGS="$(EXTRA_CFLAGS)" \
LDFLAGS="$(EXTRA_LDFLAGS)" \
define Build/Compile
_______________________________________________
openwrt-devel mailing list
[email protected]
http://lists.openwrt.org/cgi-bin/mailman/listinfo/openwrt-devel