From f2bb5194a44b230568467db3fe220f88a3dfc8ad Mon Sep 17 00:00:00 2001 From: "@katherinemaack" Date: Sun, 4 May 2025 10:47:44 -0700 Subject: [PATCH 1/2] remove all references to portaudio and portaudio_stream modules --- .../api_after_bridge_16352667.mdx | 23 - .../Mumble-Conference-With-ALSA_13173534.mdx | 292 ----------- .../Protocols_13174214.mdx | 2 - .../FreeSWITCH-Softphone_7143559.mdx | 67 --- .../Freeswitch-GUI/FS-Air_13173094.mdx | 4 +- .../fs_rpt.pl_13173092.mdx | 24 +- .../Abstraction-Interface_9634475.mdx | 2 +- .../Default-Configuration_6587388.mdx | 1 - .../Dialplan/Inline-Dialplan_13173434.mdx | 30 -- .../x__Channel-Variables_1048892.mdx | 6 - .../x__Variables_6587314.mdx | 2 - .../Variables-Master-List_16352570.mdx | 22 - .../Switch-core-variables_7766279.mdx | 1 - .../Dialplan/XML-Dialplan-archive_6586601.mdx | 5 +- .../Dialplan/XML-Dialplan/index.mdx | 9 - .../25460805.mdx | 2 +- .../Fedora-29_17695908.mdx | 4 +- .../Gentoo/index.mdx | 2 - .../Softphones/FSComm_7143564.mdx | 7 +- .../Asterisk/Rosetta-Stone_1966991.mdx | 2 +- .../Introduction/Endpoints.mdx | 1 - .../Event-System/Events_32178330.mdx | 1 - .../List-of-CUSTOM-Events_15139388.mdx | 5 - .../Meta-Pages/XML-Meta-Page_16352177.mdx | 2 +- .../Miscellaneous/FAQ/index.mdx | 2 +- .../Modules/mod-dptools/6586667.mdx | 12 - .../Modules/mod_gsmopen_7143567.mdx | 2 - .../Modules/mod_portaudio_9634724.mdx | 454 ------------------ .../Modules/mod_xml_curl_1049001.mdx | 2 +- .../Networking/Auto-Nat_6587487.mdx | 42 -- .../Debugger_1048961.mdx | 2 +- .../Debugging-Freeswitch_9633850.mdx | 2 +- provisioning/nginx/redirects.map | 1 - 33 files changed, 15 insertions(+), 1020 deletions(-) delete mode 100644 docs/FreeSWITCH-Explained/Auxiliary-Knowledge-and-Utilities/Mumble-Conference-With-ALSA_13173534.mdx delete mode 100644 docs/FreeSWITCH-Explained/Modules/mod_portaudio_9634724.mdx diff --git a/docs/Channel-Variables-Catalog/api_after_bridge_16352667.mdx b/docs/Channel-Variables-Catalog/api_after_bridge_16352667.mdx index 856475e7..2b47d443 100644 --- a/docs/Channel-Variables-Catalog/api_after_bridge_16352667.mdx +++ b/docs/Channel-Variables-Catalog/api_after_bridge_16352667.mdx @@ -7,26 +7,3 @@ string Execute an API command after bridge. -**Usage** - -Paging to PA System via [Portaudio](../FreeSWITCH-Explained/Modules/mod_portaudio_9634724.mdx#about) (with chime before and after announcement): - -```xml - - - - - - - - -``` - -`post-chime.lua`: - -```bash -api = freesswitch.API() -api:execute("pa", "play /tmp/2_tone_chime.wav") -``` - - diff --git a/docs/FreeSWITCH-Explained/Auxiliary-Knowledge-and-Utilities/Mumble-Conference-With-ALSA_13173534.mdx b/docs/FreeSWITCH-Explained/Auxiliary-Knowledge-and-Utilities/Mumble-Conference-With-ALSA_13173534.mdx deleted file mode 100644 index 59333768..00000000 --- a/docs/FreeSWITCH-Explained/Auxiliary-Knowledge-and-Utilities/Mumble-Conference-With-ALSA_13173534.mdx +++ /dev/null @@ -1,292 +0,0 @@ - -# Mumble Conference With ALSA - - - -## About - -by [Daniel O'Neill](https://freeswitch.org/confluence/display/~ver) - -How to set up a Mumble conference with ALSA. - -## Prerequisites - -You'll need to verify you have a few things installed before you can get started: - -```xml -* Linux 2.6+ -* ALSA Loopback Module (snd-aloop or snd_aloop) -* Xorg, Xvfb, or Xvnc -* Mumble (1.2.2 used here) -``` - -For the FreeSWITCH, you'll need [mod\_portaudio](../Modules/mod_portaudio_9634724.mdx#about) and [mod\_conference](../Conference/index.mdx#about). - -Verify that you have these modules by looking in mod/ for their filenames (mod\_portaudio.so and mod\_conference.so) - -Also, make sure they're enabled in autoload\_configs/modules.conf.xml. - -## Conference Setup - -Initially all you'll need to do is setup a conference, which is configured in autoload\_configs/conference.conf.xml: - -Mine looks like this: - -```xml - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -``` - -There's probably 'problems' with this, but it works perfectly for me, so pundits please update this example if you spot any errors. - -As you can see, it's a basic conference, but with some key differences: the RATE is quite high (48khz), but this is because Mumble (on my system) uses this samplerate. Using the same samplerate not only avoids resampling, but also improves stability (no jitters, or crackles). Take note of this setting though for later. - -## Dialplan Setup - -Assign an extension to this conference, and test it out. My dialplan entry looks like this: - -```xml - - - - - -``` - -In our case, the conference is configured as 'default', and there is no conference named 'hydway', so .. it works. But I think if you have more than one conference, you should point your dialplan at it properly. - -## PortAudio Endpoint - -The Portaudio plugin must also be setup, and the configuration is located at autoload\_configs/[portaudio.conf.xml](https://wiki.freeswitch.org/wiki/Portaudio.conf.xml "Portaudio.conf.xml"). Mine looks like this: - -```xml - - - - - - - - - - - - -``` - -Again, take note of the 'sample-rate' parameter, we want it to match both our conference and our mumble client. - -## ALSA asoundrc or asound.conf - -Notice the 'indev' and 'outdev' values as 'cloop' and 'ploop' in the portaudio setup. These devices will be created using the snd-aloop ALSA module by adding (or creating) the following to /etc/asound.conf: - -```xml - pcm.amix { - type dmix - ipc_key 219345 - slave.pcm "hw:Loopback,0,0" - } - pcm.asnoop { - type dsnoop - ipc_key 219346 - slave.pcm "hw:Loopback,0,1" - } - # ------------------------------------------------------ - pcm.ploop { - type dmix - ipc_key 219356 - slave.pcm "hw:Loopback,1,1" - } - pcm.cloop { - type dsnoop - ipc_key 219348 - slave.pcm "hw:Loopback,1,0" - } -``` - -Effectively, this will connect 'asnoop' with 'ploop', and 'amix' with 'cloop'. When audio is piped into asnoop, it'll come out of ploop. The same goes for the other two. (You can name these whatever you want; mumbleAplayback/mumbleAcapture and mumbleBplayback/mumbleBcapture for example may make more sense.) - -In this configuration, everything runs through dmix and dsnoop. This isn't required if your samplerates match. To freeball it, change the 'type' field to 'plug', and remove the ipc\_key lines. - -## Preparing FreeSWITCH - -In case your freeswitch is currently running, connect using fs\_cli and issue: - -```xml -reloadxml -reload mod_portaudio -reload mod_conference -``` - -Now, while still in fs\_cli, list your portaudio devices to verify it is using our new loopback devices: - -```xml -pa devlist -``` - -If configured correctly, it should look something like this: - -```xml -freeswitch@internal> pa devlist -0;VIA 8237: VIA 8237 (hw:0,0)(ALSA);2;2; -1;VIA 8237: VIA 8237 (hw:0,1)(ALSA);2;6; -2;Dummy: Dummy PCM (hw:1,0)(ALSA);2;2; -3;Dummy: Dummy PCM (hw:1,1)(ALSA);2;2; -4;Dummy: Dummy PCM (hw:1,2)(ALSA);2;2; -5;Dummy: Dummy PCM (hw:1,3)(ALSA);2;2; -6;Loopback: Loopback PCM (hw:2,0)(ALSA);32;32; -7;Loopback: Loopback PCM (hw:2,1)(ALSA);2;32; -8;front(ALSA);0;2; -9;surround40(ALSA);0;4; -10;surround41(ALSA);0;128; -11;surround50(ALSA);0;128; -12;surround51(ALSA);0;128; -13;iec958(ALSA);0;2; -14;spdif(ALSA);0;2; -15;ploop(ALSA);0;2;r,o -16;cloop(ALSA);2;0;i -17;default(ALSA);128;128; -18;dmix(ALSA);0;2; -``` - -The entries to note are 'ploop' and 'cloop', entries 15 and 16\. At the end of each line you'll see 'r,o' which means 'ringer, output', meaning this device is where your portaudio endpoint will both ring on and send output to. The next line has an 'i' at the end, meaning the endpoint will use this device as input. - -The 'Loopback' entries (6 and 7) are possibly unusable. I haven't found any way to directly address the subdevices ('2,0,0', '2,0,1', etc.) Luckily, it picks up our handrolled PCMs, which is good enough. - -## Mumble Configuration - -If you've made it this far, it gets much easier. Get/build/install Mumble. I'm not going to explain how, their website should help you out. - -Once you have Mumble built and running on your server (using Xorg or Xvnc), open the settings via Configure->Settings, and check the Advanced box in the bottom left. - -Select Audio Input on the left-side menu. - -Your devices (amix/asnoop) probably won't appear in the dropdown. If they do, select them. If they don't, don't worry, we'll fix that in a minute. - -Under Transmission, set Transmit to Voice Activity. Adjust your Compression settings (I always suggest using Speex codec for compatibility with all Mumble clients, which may be achieved by selecting a Quality level below 45.5kbit. If it stays on CELT, your Mumble client probably wasn't compiled with Speex. I -highly- suggest recompiling with support for both, unless you have control over -every- Mumble client which this configuration will communicate with; otherwise you may not 'hear' what they say). Tune your Audio per packet as you like as well. I've found that when speaking to a murmur server running on my LAN, this can be set to the minimum (10ms) without any issues. It also improves responsiveness to do this, but higher settings may be required if you're connecting to a server off-site. - -Switch to Audio Output on the left-side menu. - -Default Jitter Buffer may be set quite low, I use 10ms. Output Delay also. Again, for longer range Mumble links, higher levels may be required on these two fields. - -Switch to Messages on the left-side menu. - -These are at your own discretion. Basically every message which has an audio-generating alert associated with it will be broadcast over the conference. This bothered me, so I disabled all message notifications. (Text-to-speech is sorta cool, but believe me, it gets old really fast on a conference!) - -You may want to finish tuning your setup, but for great victory, click OK to save, and close Mumble. - -### Mumble manual device configuration - -If your 'amix' and 'asnoop' PCM devices didn't appear in your Audio Input and Audio Output device selection fields in Mumble, some configuration hacking is required. Open \~/.config/Mumble/Mumble.conf in your favourite text editor, and locate a section which looks like this: - -```xml -[alsa] -output="front:CARD=Headset,DEV=0" -input="front:CARD=Headset,DEV=0" -``` - -... now, change it to look like this: - -```xml -[alsa] -input=asnoop -output=amix -``` - - Save, close, restart Mumble. Easy, right? Sure, but the next time you open Configure->Settings and click Apply or OK, you'll have to do this all over again. In my case, the section itself was removed from the config file entirely, I just re-added it. Other than this inconvenience, it works perfectly. And once running, you should have little or no reason to reopen your configuration anyway, right? :) - -## Connecting it together - -If you've managed all of this, connect to any server you like in Mumble. If anybody speaks to you on there, you won't be able to hear it (if you have speakers or a headset connected to your FreeSWITCH server at all, you weirdos) because Mumble is routing directly into our Loopback device, which is tied, on the opposing end, to our mod\_portaudio instance. - -Go back to fs\_cli and issue the following command: - -```xml -pa call *94 -``` - -...with your conference extension in place of '\*94'. If all is well, you should see the 'lips' of your FreeSWITCH-controlled-Mumble-client turn red with fabulous activity-- briefly. - -In the terminal where you executed Mumble, note the sample rates it is using for both input and output. Configure your conference and/or portaudio to match, unless you're satisfied by dsnoop and dmix's resampling. - -## Testing - -Now to test both ends: - -Connect to the same mumble server from another computer, as usual. Pick up your SIP phone (or whatever you have connecting to FreeSWITCH, softphone, iax phone, whatever,) and dial into your conference. Talk into each, and listen with the respective other. If you have latency, adjust buffering accordingly. - -## Deploying - -At this point, you may wish to set snd-aloop to automatically load on system startup by adding it to your /etc/modules file. - -## TODO List - -I'd also like to request input on methods to do the following: - -```xml -* Have mod_portaudio automatically connect to the conference instead of doing so manually with fs_cli. - + This is possible by calling something similar to: - /usr/local/freeswitch/bin/fs_cli -x "pa call *94" - ... near the end of a FreeSWITCH initscript, with your conference extension in place of '*94' -``` - -```xml -* Have Mumble automatically connect to a configured Murmur server on startup. - + This is possible with Mumble 1.2.2 and this fantastic patch: - https://sourceforge.net/tracker/?func=detail&aid=3044142&group_id=147372&atid=768007 - + According to slicer at the Mumble project, the current (Aug 13th, 2010) GIT trunk of - Mumble is capable of connecting to the 'last server' automatically, which could also - work. This is probably the best method, since the feature will be actively maintained. -``` - - -If there are better solutions, please comment. Otherwise, once/if the Autoconnect patch is accepted on Mumble upstream, instructions will be adjusted accordingly. - -## Credits - -I stole the snd-aloop and asoundrc idea from [this](http://alsa.opensrc.org/Jack%5Fand%5FLoopback%5Fdevice%5Fas%5FAlsa-to-Jack%5Fbridge) - - diff --git a/docs/FreeSWITCH-Explained/Auxiliary-Knowledge-and-Utilities/Protocols_13174214.mdx b/docs/FreeSWITCH-Explained/Auxiliary-Knowledge-and-Utilities/Protocols_13174214.mdx index 6e9dfa39..0f9ef4e3 100644 --- a/docs/FreeSWITCH-Explained/Auxiliary-Knowledge-and-Utilities/Protocols_13174214.mdx +++ b/docs/FreeSWITCH-Explained/Auxiliary-Knowledge-and-Utilities/Protocols_13174214.mdx @@ -24,8 +24,6 @@ FreeSWITCH supports the following protocols: * provided by [mod\_gsm](https://wiki.freeswitch.org/index.php?title=Mod%5Fgsm&action=edit&redlink=1 "Mod gsm (page does not exist)") * ALSA * provided by [mod\_alsa](https://wiki.freeswitch.org/index.php?title=Mod%5Falsa&action=edit&redlink=1 "Mod alsa (page does not exist)") -* PortAudio - * provided by [mod\_portaudio](../Modules/mod_portaudio_9634724.mdx#about) ### Media diff --git a/docs/FreeSWITCH-Explained/Client-and-Developer-Interfaces/Embedding-FreeSWITCH/FreeSWITCH-Softphone_7143559.mdx b/docs/FreeSWITCH-Explained/Client-and-Developer-Interfaces/Embedding-FreeSWITCH/FreeSWITCH-Softphone_7143559.mdx index 2cebc5b0..13a15c2e 100644 --- a/docs/FreeSWITCH-Explained/Client-and-Developer-Interfaces/Embedding-FreeSWITCH/FreeSWITCH-Softphone_7143559.mdx +++ b/docs/FreeSWITCH-Explained/Client-and-Developer-Interfaces/Embedding-FreeSWITCH/FreeSWITCH-Softphone_7143559.mdx @@ -9,60 +9,6 @@ Configuration ideas using PortAudio as a means to exchange audio between FreeSWI Most of the work on this page on the old wiki was prior to March of 2010\. Some configurations and variable names have changed since then. - -## Configuration - -See [mod\_portaudio](https://wiki.freeswitch.org/wiki/Mod%5Fportaudio "Mod portaudio") for initial setup information. - -### Originating Calls - -This example API will dial the FreeSWITCH conference bridge from portaudio. One advantage of this method vs. using "pa call" is that a dialplan is not necessary. - -originate `{effective_caller_id_name=FreeSWITCH,effective_caller_id_number=9193869900}portaudio/auto_answer &bridge({originate_timeout=60}sofia/external/888@conference.freeswitch.org)` - -### Receiving Calls - -Create the following dialplan entry - -**Port Audio Dialplan Example** - -```xml - - - - - -``` - -And then call extension 3 with a softphone. - -On the console you will see **BRRRINNGGG** and then type - -pa answer - -### Music on Hold - -Some config will need to be done to specify a default MOH file. - -**portaudio.conf.xml** - -```xml - - - - -
-... - - - -... -``` - ## FreeSWITCH as a Dedicated Soft Phone The following example configuration assumes an extension of 1000, area code of 208, and that `freeswitch.local` domain is pointed to the internal IP of FreeSWITCH. @@ -172,25 +118,12 @@ If FreeSWITCH is behind the same NAT then comment out ext-rtp-ip, and ext-sip-ip - - - - - - - - - - - - ``` ### See Also -* [Mod\_portaudio](https://wiki.freeswitch.org/wiki/Mod%5Fportaudio "Mod portaudio") * [Examples](https://wiki.freeswitch.org/wiki/Examples "Examples") * Sample [softphone config](http://svn.freeswitch.org/svn/configs/softphone/) diff --git a/docs/FreeSWITCH-Explained/Client-and-Developer-Interfaces/Freeswitch-GUI/FS-Air_13173094.mdx b/docs/FreeSWITCH-Explained/Client-and-Developer-Interfaces/Freeswitch-GUI/FS-Air_13173094.mdx index 9b290769..1f380808 100644 --- a/docs/FreeSWITCH-Explained/Client-and-Developer-Interfaces/Freeswitch-GUI/FS-Air_13173094.mdx +++ b/docs/FreeSWITCH-Explained/Client-and-Developer-Interfaces/Freeswitch-GUI/FS-Air_13173094.mdx @@ -9,9 +9,7 @@ by [Seven Du](https://freeswitch.org/confluence/display/~seven) FreeSWITCH AIR is an Adobe AIR-based GUI for FreeSWITCH. It makes FreeSWITCH as easy to use as a softphone. -The idea is to connect to FreeSWITCH [mod\_event\_socket](../../Modules/mod_event_socket_1048924.mdx#11-acl) and control [mod\_portaudio](../../Modules/mod_portaudio_9634724.mdx#about) by using API commands. Also it listens to the events such as portaudio::ringing and CHANNEL\_HANGUP to update the GUI accordingly. - -Sure portaudio includes a Web based GUI, which is really nice. But FSAir is just more like a softphone. +The idea is to connect to FreeSWITCH [mod\_event\_socket](../../Modules/mod_event_socket_1048924.mdx#11-acl) and control by using API commands. Also it listens to the events such as CHANNEL\_HANGUP to update the GUI accordingly. Click here to expand Table of Contents diff --git a/docs/FreeSWITCH-Explained/Client-and-Developer-Interfaces/fs_rpt.pl_13173092.mdx b/docs/FreeSWITCH-Explained/Client-and-Developer-Interfaces/fs_rpt.pl_13173092.mdx index ca737b4b..f66250e5 100644 --- a/docs/FreeSWITCH-Explained/Client-and-Developer-Interfaces/fs_rpt.pl_13173092.mdx +++ b/docs/FreeSWITCH-Explained/Client-and-Developer-Interfaces/fs_rpt.pl_13173092.mdx @@ -46,7 +46,6 @@ In order to use the script, you must install FreeSWITCH. Once you have done that * File::stat * [mod\_event\_socket](../Modules/mod_event_socket_1048924.mdx#11-acl) * [mod\_conference](../Modules/mod_conference_3965534.mdx#list) -* [mod\_portaudio](../Modules/mod_portaudio_9634724.mdx#about) * [FreeSWITCH-contrib/trixter/radio/fs\_rpt.pl](https://freeswitch.org/stash/projects/FS/repos/freeswitch-contrib/browse/trixter/radio) ### Optional @@ -95,26 +94,6 @@ The important thing is to set the caller-controls to the group you made in the p ``` -### Dialplan Configuration - -**dialplan/default/radio.xml** - -```xml - - - - - - - - - - -``` - -This will run [start\_dtmf](../Modules/mod-dptools/6587132.mdx#0-about) on the portaudio port so that when the radio receives DTMF tones, they can be decoded and acted upon by [fs\_rpt.pl](http://fs%5Frpt.pl). It will put all callers into a conference where they can communicate. - ### Script Configuration There are a few different variables that you need to configure in the script itself. These variables control some of the functionality of the script as it interfaces with the radio. When you edit the script you will see the following: @@ -155,7 +134,6 @@ Configure the conference information, use the extension you created in your dial ```perl my $confname = "radio"; # the name of the conference - my $extension = "1337"; # this is the extension that portaudio will call to join the radio conference ``` Configure your callsign if desired or required. This will use the morse.js script, which is required to be in the 'scripts' directory under your main FreeSWITCH install directory. If it is 'undef' then no callsign will be transmitted, which may violate some laws in some jurisdictions. @@ -179,7 +157,7 @@ Configure the path to Cepstral (or some other TTS engine). If you use another TT ## Running -Start FreeSWITCH as normal, or reloadxml if it was already running to load the new settings. Launch fs\_rpt.pl which will place a portaudio call into the conference. +Start FreeSWITCH as normal, or reloadxml if it was already running to load the new settings. Create an announcement.txt for any announcements that you want audibly spoken after each morse code identification, delete this file to disable announcements when they are no longer relevant. diff --git a/docs/FreeSWITCH-Explained/Community/Contributing-Code/Creating-New-Modules/Abstraction-Interface_9634475.mdx b/docs/FreeSWITCH-Explained/Community/Contributing-Code/Creating-New-Modules/Abstraction-Interface_9634475.mdx index 5adea7ce..93abb525 100644 --- a/docs/FreeSWITCH-Explained/Community/Contributing-Code/Creating-New-Modules/Abstraction-Interface_9634475.mdx +++ b/docs/FreeSWITCH-Explained/Community/Contributing-Code/Creating-New-Modules/Abstraction-Interface_9634475.mdx @@ -7,7 +7,7 @@ Modules register with an abstraction interface. At the time of this writing there are currently several interfaces and before you add a new one you should really see if what you have exists in any of the existing ones. -* Endpoint - these are endpoints such as SIP, IAX, portaudio, etc. +* Endpoint - these are endpoints such as SIP, IAX, etc. * Timer - these are timer interfaces, such as softtimer * Dialplan - all the nifty ways to deal with a dialplan can register here * Codec - if it encodes/decodes for an endpoint it goes here diff --git a/docs/FreeSWITCH-Explained/Configuration/Default-Configuration_6587388.mdx b/docs/FreeSWITCH-Explained/Configuration/Default-Configuration_6587388.mdx index 2ec2f69d..90152485 100644 --- a/docs/FreeSWITCH-Explained/Configuration/Default-Configuration_6587388.mdx +++ b/docs/FreeSWITCH-Explained/Configuration/Default-Configuration_6587388.mdx @@ -234,7 +234,6 @@ conf/autoload_configs/[logfile.conf.xml](https://github.com/signalwire/freeswitc conf/autoload_configs/[lua.conf.xml](https://github.com/signalwire/freeswitch/blob/master/conf/vanilla/autoload%5Fconfigs/lua.conf.xml) conf/autoload_configs/[modules.conf.xml](https://github.com/signalwire/freeswitch/blob/master/conf/vanilla/autoload%5Fconfigs/modules.conf.xml) conf/autoload_configs/[perl.conf.xml](https://github.com/signalwire/freeswitch/blob/master/conf/vanilla/autoload%5Fconfigs/perl.conf.xml) -conf/autoload_configs/[portaudio.conf.xml](https://github.com/signalwire/freeswitch/blob/master/conf/vanilla/autoload%5Fconfigs/portaudio.conf.xml) conf/autoload_configs/[post_load_modules.conf.xml](https://github.com/signalwire/freeswitch/blob/master/conf/vanilla/autoload%5Fconfigs/post%5Fload%5Fmodules.conf.xml) conf/autoload_configs/[rss.conf.xml](https://github.com/signalwire/freeswitch/blob/master/conf/vanilla/autoload%5Fconfigs/rss.conf.xml) conf/autoload_configs/[sofia.conf.xml](https://github.com/signalwire/freeswitch/blob/master/conf/vanilla/autoload%5Fconfigs/sofia.conf.xml) diff --git a/docs/FreeSWITCH-Explained/Dialplan/Inline-Dialplan_13173434.mdx b/docs/FreeSWITCH-Explained/Dialplan/Inline-Dialplan_13173434.mdx index 610cfd9d..c73fe6b3 100644 --- a/docs/FreeSWITCH-Explained/Dialplan/Inline-Dialplan_13173434.mdx +++ b/docs/FreeSWITCH-Explained/Dialplan/Inline-Dialplan_13173434.mdx @@ -12,7 +12,6 @@ Click here to expand Table of Contents * 2 [Examples](#examples) * 2.1 [uuid\_transfer](#uuid_transfer) * 2.2 [Originate](#originate) - * 2.3 [PortAudio](#portaudio) * 3 [See Also](#see-also) ## Description @@ -64,35 +63,6 @@ A simple originate where the B leg is specified inline: originate sofia/gateway/my_gw/user@domain.com 'set:myvar=myvalue,info:,playback:foo.wav' inline ``` -### PortAudio - -A handy way to use PortAudio from the FreeSWITCH CLI is this: - -```xml - originate {absolute_codec_string=XXXX}sofia/default/foo@bar.com bridge:portaudio/auto_answer inline -``` - -See also: [Dialplan\_XML#Getting\_Fancy\_With\_PortAudio](https://wiki.freeswitch.org/wiki/Dialplan%5FXML#Getting%5FFancy%5FWith%5FPortAudio "Dialplan XML") - - -Note the lack of a leading / in the bridge string above. If you tried to do [bridge:/portaudio/auto\_answer](http://bridge/portaudio/auto%5Fanswer) the bridge would fail with CHAN\_NOT\_IMPLEMENTED because FreeSWITCH™ assumes the string between the ':' and the first '/' to be the channel type, and so if you have a leading slash the channel type is an empty string.SIP Profile - -The dialplan parameter in the SIP profile can also be an inline dialplan. The standard entry is this: - -```xml - -``` - -Customize it like this: - -```xml - -``` - - -Note that you specify "inline:" at the beginning of the parameter and not at the end like you do when using the command line. - - ## See Also * [Dialplan](./index.mdx#0-about) diff --git a/docs/FreeSWITCH-Explained/Dialplan/Variables-Archive/x__Channel-Variables_1048892.mdx b/docs/FreeSWITCH-Explained/Dialplan/Variables-Archive/x__Channel-Variables_1048892.mdx index 39dce19c..7959130e 100644 --- a/docs/FreeSWITCH-Explained/Dialplan/Variables-Archive/x__Channel-Variables_1048892.mdx +++ b/docs/FreeSWITCH-Explained/Dialplan/Variables-Archive/x__Channel-Variables_1048892.mdx @@ -960,12 +960,6 @@ Finally you can set the variable for a particular extension in /conf/directory/d Execute an API command after bridge. - -**Usage:** - -Paging to PA System via Portaudio (w/ chime before and after announcement) [[1]](http://wiki.freeswitch.org/wiki/Mod%5Fportaudio#PA%5FSystem%5Fw.2F%5FChime) - - #### [auto_hunt](./x__Variables_6587314.mdx#auto_hunt) Setting auto\_hunt to "true" will alter the normal sequential processing of dialplan extensions. auto\_hunt will cause the dialplan to 'jump' to a specific **extension name**, not processing any other extension. The destination\_number and extension name must be the same in order for this to work. The condition must still match, but the extension name is the operative element. diff --git a/docs/FreeSWITCH-Explained/Dialplan/Variables-Archive/x__Variables_6587314.mdx b/docs/FreeSWITCH-Explained/Dialplan/Variables-Archive/x__Variables_6587314.mdx index 65a26e0a..bc460a0e 100644 --- a/docs/FreeSWITCH-Explained/Dialplan/Variables-Archive/x__Variables_6587314.mdx +++ b/docs/FreeSWITCH-Explained/Dialplan/Variables-Archive/x__Variables_6587314.mdx @@ -7323,7 +7323,6 @@ Description needed! Please contribute one. | **Module Name** | **Source File** | **Last Revised** | | ----------------------------------------------------------------------------------- | ---------------- | ---------------- | | [mod\_alsa](../../Introduction/Variables/index.mdx#0-about) | mod\_alsa.c | 5023 | -| [mod\_portaudio](../../Introduction/Variables/index.mdx#0-about) | mod\_portaudio.c | 4795 | ## pa_ring_file @@ -7341,7 +7340,6 @@ Description needed! Please contribute one. | **Module Name** | **Source File** | **Last Revised** | | ----------------------------------------------------------------------------------- | ---------------- | ---------------- | | [mod\_alsa](../../Introduction/Variables/index.mdx#0-about) | mod\_alsa.c | 5023 | -| [mod\_portaudio](../../Introduction/Variables/index.mdx#0-about) | mod\_portaudio.c | 4795 | ## playback_terminators diff --git a/docs/FreeSWITCH-Explained/Dialplan/Variables-Master-List_16352570.mdx b/docs/FreeSWITCH-Explained/Dialplan/Variables-Master-List_16352570.mdx index 98c548ca..f62f4afc 100644 --- a/docs/FreeSWITCH-Explained/Dialplan/Variables-Master-List_16352570.mdx +++ b/docs/FreeSWITCH-Explained/Dialplan/Variables-Master-List_16352570.mdx @@ -80,28 +80,6 @@ integer string Execute an API command after bridge. -**Usage** - -Paging to PA System via [Portaudio](../Modules/mod_portaudio_9634724.mdx#about) (with chime before and after announcement): - -```xml - - - - - - - - -``` - -`post-chime.lua`: - -```bash -api = freesswitch.API() -api:execute("pa", "play /tmp/2_tone_chime.wav") -``` - ### api_hangup_hook string Execute an API command on hangup. diff --git a/docs/FreeSWITCH-Explained/Dialplan/Variables-WIP/Switch-core-variables_7766279.mdx b/docs/FreeSWITCH-Explained/Dialplan/Variables-WIP/Switch-core-variables_7766279.mdx index 3a394d09..feeb3bb5 100644 --- a/docs/FreeSWITCH-Explained/Dialplan/Variables-WIP/Switch-core-variables_7766279.mdx +++ b/docs/FreeSWITCH-Explained/Dialplan/Variables-WIP/Switch-core-variables_7766279.mdx @@ -76,7 +76,6 @@ Execute an API command after bridge. - post-chime.lua: diff --git a/docs/FreeSWITCH-Explained/Dialplan/XML-Dialplan-archive_6586601.mdx b/docs/FreeSWITCH-Explained/Dialplan/XML-Dialplan-archive_6586601.mdx index 2b2ce3ef..43db61fb 100644 --- a/docs/FreeSWITCH-Explained/Dialplan/XML-Dialplan-archive_6586601.mdx +++ b/docs/FreeSWITCH-Explained/Dialplan/XML-Dialplan-archive_6586601.mdx @@ -52,8 +52,7 @@ Click here to expand Table of Contents * 7.3 [Dialing Through A Gateway (SIP Provider)](#dialing-through-a-gateway-sip-provider) * 7.4 [Dialing With A Specific Transport](#dialing-with-a-specific-transport) * 7.5 [Specifying The Codec](#specifying-the-codec) - * 7.6 [Getting Fancy With PortAudio](#getting-fancy-with-portaudio) - * 7.7 [Changing the SIP Contact user](#changing-the-sip-contact-user) + * 7.7 [Changing the SIP Contact user](#changing-the-sip-contact-user) * 7.8 [Using a Custom SIP URI](#using-a-custom-sip-uri) * 7.9 [Testing the dialplan with a command line](#testing-the-dialplan-with-a-command-line) * 7.10 [Setting up SIP Diversion Header for call forward](#setting-up-sip-diversion-header-for-call-forward) @@ -1344,7 +1343,7 @@ Additional dialstring examples from [Absolute Codec String variable](https://wik If you have PortAudio running and would like to specify the codec you need to originate first and bridge second: ```xml -originate {absolute_codec_string=XXXX}sofia/default/foo@bar.com bridge:portaudio/auto_answer inline +originate {absolute_codec_string=XXXX}sofia/default/foo@bar.com inline ``` #### Changing the SIP Contact user diff --git a/docs/FreeSWITCH-Explained/Dialplan/XML-Dialplan/index.mdx b/docs/FreeSWITCH-Explained/Dialplan/XML-Dialplan/index.mdx index c6e79cbb..6a0d3b3e 100644 --- a/docs/FreeSWITCH-Explained/Dialplan/XML-Dialplan/index.mdx +++ b/docs/FreeSWITCH-Explained/Dialplan/XML-Dialplan/index.mdx @@ -1542,15 +1542,6 @@ Occasionally you may want to force the system to use a specific codec. This synt In this example, XXXX represents the codec to be used. The possible codec values are listed [here](../../Codecs-and-Media/Audio-Codecs_1048675.mdx). Additional dialstring examples from [Absolute Codec String variable](../Variables-Master-List_16352570.mdx#absolute_codec_string). -##### Getting Fancy With PortAudio - -If you have PortAudio running and would like to specify the codec you need to originate first and bridge second: - -```xml -originate {absolute_codec_string=XXXX}sofia/default/foo@bar.com bridge:portaudio/auto_answer inline -``` - - ##### Changing the SIP Contact user FreeSWITCH normally uses mod\_sofia@ip:port for the internal SIP contact. To change this to foo@ip:port, there is a variable, sip\_contact\_user: diff --git a/docs/FreeSWITCH-Explained/Installation/Linux/Deprecated-Installation-Instructions/25460805.mdx b/docs/FreeSWITCH-Explained/Installation/Linux/Deprecated-Installation-Instructions/25460805.mdx index 32b1426e..f4c20aaf 100644 --- a/docs/FreeSWITCH-Explained/Installation/Linux/Deprecated-Installation-Instructions/25460805.mdx +++ b/docs/FreeSWITCH-Explained/Installation/Linux/Deprecated-Installation-Instructions/25460805.mdx @@ -219,6 +219,6 @@ If you built FreeSWITCH™ from source code you should set file permissions and | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | | Thanks. ![](/images/icons/contenttypes/comment_16.png) Posted by andywolk at Aug 14, 2019 17:18 | | I had to also install libpcap-dev libjpeg-dev zlib1g-dev pkg-config libcurl4-gnutls-dev libldns-dev libtiff-dev ![](/images/icons/contenttypes/comment_16.png) Posted by davidcsi at Oct 25, 2019 21:01 | -| I've followed the instructions and installed the additional packages show by David above. When running on Raspberry Pi OS (Buster), building dependencies fails as follows:As of August 7, 2020, the Debian from source instructions for Buster has an issue. Running apt-get build-dep freeswitch results follow:root@freeswitch:\~# apt-get build-dep freeswitchReading package lists... DoneReading package lists... DoneBuilding dependency treeReading state information... DoneSome packages could not be installed. This may mean that you haverequested an impossible situation or if you are using the unstabledistribution that some required packages have not yet been createdor been moved out of Incoming.The following information may help to resolve the situation:The following packages have unmet dependencies:builddeps:freeswitch : Depends: libsofia-sip-ua-dev (>= 1.12.12) but it is not going to be installedDepends: libilbc-dev but it is not installableDepends: portaudio19-dev but it is not going to be installedDepends: libv8-6.1-dev but it is not installableE: Unable to correct problems, you have held broken packages. ![](/images/icons/contenttypes/comment_16.png) Posted by tom@tomlynn.com at Aug 08, 2020 01:26 | +| I've followed the instructions and installed the additional packages show by David above. When running on Raspberry Pi OS (Buster), building dependencies fails as follows:As of August 7, 2020, the Debian from source instructions for Buster has an issue. Running apt-get build-dep freeswitch results follow:root@freeswitch:\~# apt-get build-dep freeswitchReading package lists... DoneReading package lists... DoneBuilding dependency treeReading state information... DoneSome packages could not be installed. This may mean that you haverequested an impossible situation or if you are using the unstabledistribution that some required packages have not yet been createdor been moved out of Incoming.The following information may help to resolve the situation:The following packages have unmet dependencies:builddeps:freeswitch : Depends: libsofia-sip-ua-dev (>= 1.12.12) but it is not going to be installedDepends: libilbc-dev but it is not installableDepends: libv8-6.1-dev but it is not installableE: Unable to correct problems, you have held broken packages. ![](/images/icons/contenttypes/comment_16.png) Posted by tom@tomlynn.com at Aug 08, 2020 01:26 | diff --git a/docs/FreeSWITCH-Explained/Installation/Linux/Deprecated-Installation-Instructions/Fedora-29_17695908.mdx b/docs/FreeSWITCH-Explained/Installation/Linux/Deprecated-Installation-Instructions/Fedora-29_17695908.mdx index 7ddcd087..556115ff 100644 --- a/docs/FreeSWITCH-Explained/Installation/Linux/Deprecated-Installation-Instructions/Fedora-29_17695908.mdx +++ b/docs/FreeSWITCH-Explained/Installation/Linux/Deprecated-Installation-Instructions/Fedora-29_17695908.mdx @@ -27,7 +27,7 @@ dnf install -y git alsa-lib-devel autoconf automake bison bzip2 curl-devel e2fsp gcc-c++ gdbm-devel gnutls-devel ldns-devel libcurl-devel libedit-devel libidn-devel libjpeg-devel libmemcached-devel \ libogg-devel libsndfile-devel libtheora-devel libtiff-devel libtool libuuid-devel libvorbis-devel libxml2-devel \ lua-devel lzo-devel mongo-c-driver-devel ncurses-devel net-snmp-devel nspr-devel openssl-devel opus-devel pcre-devel perl \ -perl-ExtUtils-Embed pkgconfig portaudio-devel postgresql-devel python2-devel python-devel soundtouch-devel \ +perl-ExtUtils-Embed pkgconfig postgresql-devel python2-devel python-devel soundtouch-devel \ speex-devel sqlite-devel unbound-devel unixODBC-devel wget which yasm zlib-devel speexdsp-devel speex-devel erlang cd /usr/local/src @@ -60,7 +60,7 @@ dnf install -y git alsa-lib-devel autoconf automake bison bzip2 curl-devel e2fsp gcc-c++ gdbm-devel gnutls-devel ldns-devel libcurl-devel libedit-devel libidn-devel libjpeg-devel libmemcached-devel \ libogg-devel libsndfile-devel libtheora-devel libtiff-devel libtool libuuid-devel libvorbis-devel libxml2-devel \ lua-devel lzo-devel mongo-c-driver-devel ncurses-devel net-snmp-devel nspr-devel openssl-devel opus-devel pcre-devel perl \ -perl-ExtUtils-Embed pkgconfig portaudio-devel postgresql-devel python2-devel python-devel soundtouch-devel \ +perl-ExtUtils-Embed pkgconfig postgresql-devel python2-devel python-devel soundtouch-devel \ speex-devel sqlite-devel unbound-devel unixODBC-devel wget which yasm zlib-devel speexdsp-devel speex-devel erlang cd /usr/local/src diff --git a/docs/FreeSWITCH-Explained/Installation/Linux/Deprecated-Installation-Instructions/Gentoo/index.mdx b/docs/FreeSWITCH-Explained/Installation/Linux/Deprecated-Installation-Instructions/Gentoo/index.mdx index 5f4ba224..568e82ad 100644 --- a/docs/FreeSWITCH-Explained/Installation/Linux/Deprecated-Installation-Instructions/Gentoo/index.mdx +++ b/docs/FreeSWITCH-Explained/Installation/Linux/Deprecated-Installation-Instructions/Gentoo/index.mdx @@ -157,8 +157,6 @@ USE="freeswitch_modules_lua freeswitch_modules_sofia" | osp | Open Settlement Protocol (OSP) module (mod\_osp) | | perl | Perl language module (mod\_perl) | | pocketsphinx | Pocketsphinx ASR (Speech-recognition) module (mod\_pocketsphinx) | -| portaudio | Portaudio endpoint module (mod\_portaudio) | -| portaudio\_stream | Stream audio from a portaudio source (mod\_portaudio\_stream) | | python | Python language module (mod\_python) | | radius\_cdr | Radius CDR (Call-Detail-Record) module (mod\_radius\_cdr) | | redis | Redis homepage\])-based resource limit module (mod\_redis) | diff --git a/docs/FreeSWITCH-Explained/Interoperability/Softphones/FSComm_7143564.mdx b/docs/FreeSWITCH-Explained/Interoperability/Softphones/FSComm_7143564.mdx index 7e1bfd9d..d304dcd0 100644 --- a/docs/FreeSWITCH-Explained/Interoperability/Softphones/FSComm_7143564.mdx +++ b/docs/FreeSWITCH-Explained/Interoperability/Softphones/FSComm_7143564.mdx @@ -35,11 +35,7 @@ Last, but not least, FSComm's needs an User Interface that is at the same time e ### Requirements -FSComm is based on the [Qt Framework](http://qt.nokia.com/) version 4.6 but it might work on other versions of the Qt Framework (testing needed). FSComm is based on libfreeswitch, so FreeSWITCH™ needs to be compiled and installed. The source for FSComm is located on the fscomm FreeSWITCH™'s [Github repository](https://github.com/signalwire/freeswitch). Uncomment the line: - -endpoints/mod_portaudio - -in modules.conf before building FreeSWITCH™. +FSComm is based on the [Qt Framework](http://qt.nokia.com/) version 4.6 but it might work on other versions of the Qt Framework (testing needed). FSComm is based on libfreeswitch, so FreeSWITCH™ needs to be compiled and installed. The source for FSComm is located on the fscomm FreeSWITCH™'s [Github repository](https://github.com/signalwire/freeswitch). ### MacOSX @@ -96,7 +92,6 @@ QTDIR=c:\\qt\\4.6.0 (or wherever you installed it.) * QtXmld4.dll 9. The FSComm\\debug\\mod (or release\\mod) directory must also be manually populated with the needed mods. They can simply be copied from FreeSwitch\\debug\\mod or release\\mod * mod\_sofia - * mod\_portaudio * Others as needed (e.g. for other codecs) ## Using FSComm diff --git a/docs/FreeSWITCH-Explained/Interoperability/Software-Interfaces/Asterisk/Rosetta-Stone_1966991.mdx b/docs/FreeSWITCH-Explained/Interoperability/Software-Interfaces/Asterisk/Rosetta-Stone_1966991.mdx index 31bf2718..bf412a7b 100644 --- a/docs/FreeSWITCH-Explained/Interoperability/Software-Interfaces/Asterisk/Rosetta-Stone_1966991.mdx +++ b/docs/FreeSWITCH-Explained/Interoperability/Software-Interfaces/Asterisk/Rosetta-Stone_1966991.mdx @@ -45,7 +45,7 @@ While FreeSWITCH is not a drop-in replacement for Asterisk, it does many of the | core show version | version | F12 | | channel originate sip/_source_ extension _destination_ | originate user/_source_ _destination_ xml default | | | channel originate sip/_source_ application _appname_ _data_ | originate user/_source_ &_appname_(_data_) | | -| console dial 1000 | pa call 1000 _(see [mod\_portaudio](https://wiki.freeswitch.org/wiki/Mod%5Fportaudio))_ | | +| console dial 1000 | | | | database get _family key_ | db select/_family_/_key_ | | | dialplan show | xml\_locate dialplan | | | hangup request _channel_ | uuid\_kill _uuid_ | | diff --git a/docs/FreeSWITCH-Explained/Introduction/Endpoints.mdx b/docs/FreeSWITCH-Explained/Introduction/Endpoints.mdx index 12a7b802..97e01332 100644 --- a/docs/FreeSWITCH-Explained/Introduction/Endpoints.mdx +++ b/docs/FreeSWITCH-Explained/Introduction/Endpoints.mdx @@ -47,7 +47,6 @@ sofia/external/18005551212 | Jingle (google talk) | [mod\_dingaling](../Modules/mod_dingaling_6587385.mdx#faq) | dingaling | | | Skype | [mod\_skypopen](../Modules/mod_skypopen_3966336.mdx) | skypopen | | | GSM | [mod\_gsmopen](../Modules/mod_gsmopen_7143567.mdx#list) | gsmopen | Supports voice & SMS over a GSM network | -| PortAudio | [mod\_portaudio](../Modules/mod_portaudio_9634724.mdx#about) | portaudio | For interacting with the sound card on your computer | | Verto | [mod\_verto](../Modules/mod_verto_3964934.mdx#about) | verto.rtc | You can also use the verto\_contact function to generate the dialstring | | WebRTC | [mod\_rtc](../Modules/mod_rtc_3965027.mdx#about) | rtc | This endpoint is only for media, not signaling | | RTMP (flash) | [mod\_rtmp](../Modules/mod_rtmp_5046427.mdx#api) | rtmp | You can also use the rtmp\_contact function to generate the dialstring | diff --git a/docs/FreeSWITCH-Explained/Introduction/Event-System/Events_32178330.mdx b/docs/FreeSWITCH-Explained/Introduction/Event-System/Events_32178330.mdx index dcbd3c88..125cd524 100644 --- a/docs/FreeSWITCH-Explained/Introduction/Event-System/Events_32178330.mdx +++ b/docs/FreeSWITCH-Explained/Introduction/Event-System/Events_32178330.mdx @@ -264,7 +264,6 @@ Modules with CUSTOM events * [mod\_sofia](../../Modules/mod_sofia_1048707.mdx#about) \- Sofia-SIP module. * [mod\_dingaling](../../Modules/mod_dingaling_6587385.mdx#faq) \- Jabber/GoogleTalk Talk integration module. -* [mod\_portaudio](../../Modules/mod_portaudio_9634724.mdx#about) \- Host machine sound card. * [mod\_conference](../../Conference/index.mdx#about) \- Conference module. * [mod\_event\_multicast](../../Modules/mod_event_multicast_6587395.mdx#todo) * [mod\_skinny](../../Modules/mod_skinny_3375354.mdx#custom-events) \- Skinny (aka SCCP) module. diff --git a/docs/FreeSWITCH-Explained/Introduction/Event-System/List-of-CUSTOM-Events_15139388.mdx b/docs/FreeSWITCH-Explained/Introduction/Event-System/List-of-CUSTOM-Events_15139388.mdx index 19ac94b7..3faefeed 100644 --- a/docs/FreeSWITCH-Explained/Introduction/Event-System/List-of-CUSTOM-Events_15139388.mdx +++ b/docs/FreeSWITCH-Explained/Introduction/Event-System/List-of-CUSTOM-Events_15139388.mdx @@ -51,11 +51,6 @@ For the definition, see **2.2 Subclasses (or `CUSTOM` events)** in [Events](./Ev * `multicast::peerup` * `name::method_name` * `parking::info` -* `portaudio::audio_dev_error` -* `portaudio::callheld` -* `portaudio::callresumed` -* `portaudio::makecall` -* `portaudio::ringing` * `rtmp::attach` * `rtmp::clientcustom` * `rtmp::connect` diff --git a/docs/FreeSWITCH-Explained/Meta-Pages/XML-Meta-Page_16352177.mdx b/docs/FreeSWITCH-Explained/Meta-Pages/XML-Meta-Page_16352177.mdx index f3ddac58..4196202c 100644 --- a/docs/FreeSWITCH-Explained/Meta-Pages/XML-Meta-Page_16352177.mdx +++ b/docs/FreeSWITCH-Explained/Meta-Pages/XML-Meta-Page_16352177.mdx @@ -442,7 +442,7 @@ This section needs to find a place. But the concept of a channel is important. I * [PHP email](../Auxiliary-Knowledge-and-Utilities/PHP-email_13173547.mdx#about) – has XML configuration for setting the mailer * [HylaFax](../Auxiliary-Knowledge-and-Utilities/HylaFax_13173342.mdx#esl) – has example XML extensions for transmitting and receiving faxes * [FreeSWITCH DB in RAMdrive](../Auxiliary-Knowledge-and-Utilities/FreeSWITCH-DB-in-RAMdrive_13173438.mdx#about) – references the core-db-name -* [Mumble Conference With ALSA](../Auxiliary-Knowledge-and-Utilities/Mumble-Conference-With-ALSA_13173534.mdx#about) – shows XML config for conference, portaudio +* [Mumble Conference With ALSA](../Auxiliary-Knowledge-and-Utilities/Mumble-Conference-With-ALSA_13173534.mdx#about) – shows XML config for conference * [Multi home tutorial](../Auxiliary-Knowledge-and-Utilities/Multi-home-tutorial/index.mdx#about) – repeats things about registration with sip provider, directory, gateway config, etc * [Multi Homed Dual NIC How To](../Auxiliary-Knowledge-and-Utilities/Multi-home-tutorial/Multi-Homed-Dual-NIC-How-To_13174221.mdx#about) – more xml sip profile config * [Multiple Companies](../Auxiliary-Knowledge-and-Utilities/Multi-home-tutorial/Multiple-Companies_13173524.mdx#about) – more xml config: contexts, directory diff --git a/docs/FreeSWITCH-Explained/Miscellaneous/FAQ/index.mdx b/docs/FreeSWITCH-Explained/Miscellaneous/FAQ/index.mdx index 9e46f8c9..05c7e0b0 100644 --- a/docs/FreeSWITCH-Explained/Miscellaneous/FAQ/index.mdx +++ b/docs/FreeSWITCH-Explained/Miscellaneous/FAQ/index.mdx @@ -136,7 +136,7 @@ FreeSWITCH simply represents my concept of the future of Telephony. ### Q: What are some of the things FreeSWITCH can do? -FreeSWITCH has endpoints that implement SIP, SCCP, H.323 (with OPAL), Skype, Jingle (Google Talk), sound cards (via [mod\_portaudio](https://wiki.freeswitch.org/wiki/Mod%5Fportaudio "Mod portaudio")), and TDM cards (Sangoma or Zaptel-compatible). You can use it as both a client and a server for VoIP communications, gateway a call from one protocol to another and execute IVR scripts written in one of several languages such as JavaScript, Perl, Lua, or C#. There is an extensive event engine that will inform you of anything that happens on the system as well as an XML-RPC interface that allows you to send and receive data from the core via HTTP. +FreeSWITCH has endpoints that implement SIP, SCCP, H.323 (with OPAL), Skype, Jingle (Google Talk), and TDM cards (Sangoma or Zaptel-compatible). You can use it as both a client and a server for VoIP communications, gateway a call from one protocol to another and execute IVR scripts written in one of several languages such as JavaScript, Perl, Lua, or C#. There is an extensive event engine that will inform you of anything that happens on the system as well as an XML-RPC interface that allows you to send and receive data from the core via HTTP. There is abstraction in place to allow data to be pulled from XML, external HTTP requests, flat file (INI format) and via directory look-up, LDAP for example. The dial plan combines the power of XML and Perl Compatible Regular Expressions to allow one to route calls based on most any criteria from the call details. diff --git a/docs/FreeSWITCH-Explained/Modules/mod-dptools/6586667.mdx b/docs/FreeSWITCH-Explained/Modules/mod-dptools/6586667.mdx index 3ae5fbb1..776c3ed8 100644 --- a/docs/FreeSWITCH-Explained/Modules/mod-dptools/6586667.mdx +++ b/docs/FreeSWITCH-Explained/Modules/mod-dptools/6586667.mdx @@ -47,18 +47,6 @@ A simple originate where the B leg is specified inline: originate sofia/gateway/my_gw/user@domain.com 'set:myvar=myvalue,info:,playback:foo.wav' inline ``` -### PortAudio - -A handy way to use PortAudio from the FreeSWITCH CLI is this: - -```xml -originate {absolute_codec_string=XXXX}sofia/default/foo@bar.com bridge:portaudio/auto_answer inline -``` - -See also: [Getting Fancy With PortAudio](../../Dialplan/XML-Dialplan/index.mdx#getting-fancy-with-portaudio) - -Note the lack of a leading / in the bridge string above. If you tried to do bridge:/portaudio/auto\_answer the bridge would fail with CHAN\_NOT\_IMPLEMENTED because FreeSWITCH™ assumes the string between the ':' and the first '/' to be the channel type, and so if you have a leading slash the channel type is an empty string. - ### SIP Profile The dialplan parameter in the SIP profile can also be an inline dialplan. The standard entry is this: diff --git a/docs/FreeSWITCH-Explained/Modules/mod_gsmopen_7143567.mdx b/docs/FreeSWITCH-Explained/Modules/mod_gsmopen_7143567.mdx index e3f7ffd2..65eb6afb 100644 --- a/docs/FreeSWITCH-Explained/Modules/mod_gsmopen_7143567.mdx +++ b/docs/FreeSWITCH-Explained/Modules/mod_gsmopen_7143567.mdx @@ -300,8 +300,6 @@ There are default values for all values, so you can leave the configuration file capture_boost = "5" playback_boost = "10" no_sound = "0" - portaudiocindex = "1" - portaudiopindex = "1" speexecho = "1" speexpreprocess = "1" gsmopen_serial_sync_period = "300" diff --git a/docs/FreeSWITCH-Explained/Modules/mod_portaudio_9634724.mdx b/docs/FreeSWITCH-Explained/Modules/mod_portaudio_9634724.mdx deleted file mode 100644 index 0caeffca..00000000 --- a/docs/FreeSWITCH-Explained/Modules/mod_portaudio_9634724.mdx +++ /dev/null @@ -1,454 +0,0 @@ - -# mod_portaudio - - - -## About - -mod\_portaudio is used for interfacing with sound card. This scenario is usually used when FreeSWITCH is used for a softphone basis, or as an easy way to get a local connection for development. - -Interaction with mod\_portaudio usually happens at the Freeswitch CLI, including setup, placing calls, answering calls, etc. - -Many [Softphones](../Interoperability/Softphones/index.mdx#about) use [embedded FreeSWITCH](../Client-and-Developer-Interfaces/Embedding-FreeSWITCH/index.mdx#php) and portaudio at their core. Two examples are [FSComm](../Interoperability/Softphones/FSComm_7143564.mdx#about) a QT4 cross platform communicator and [FSClient](../Interoperability/Softphones/FSClient_7143562.mdx#about) a Windows .NET 4.0 softphone. - -Portaudio (PA) is a cross-platform library. - -Beware mod\_portaudio recently had a large hunk of code injected into it and the configuration related to Shared Streams. For most scenarios this is not required and my throw (generally harmless) errors. Please see the note on [#Shared\_Streams\_and\_Endpoints](http://freeswitch.org#shared%5Fsreams%5Fand%5Fendpoints) for more details. - -### Features - -* Mulitiple calls with hold/call switching. -* Inbound calls can play a ring file on specified device. (global and per call) -* Optional hold music for backgrounded calls. (global and per call) -* Switch audio devices even during a call (see live-stream-switching) -* DTMF and deaf/mute options - -Click here to expand Table of Contents - -* 1 [Features](#features) -* 2 [Command Reference](#command-reference) - * 2.1 [pa help - print usage summary](#pa-help---print-usage-summary) - * 2.2 [pa devlist \[xml\] - list audio devices](#pa-devlist-xml---list-audio-devices) - * 2.3 [pa indev (device\_ident), pa outdev (device\_ident), pa switchstream (in\_device\_ident) (out\_device\_ident) - Set input/output device streams](#pa-indev-device_ident-pa-outdev-device_ident-pa-switchstream-in_device_ident-out_device_ident---set-inputoutput-device-streams) - * 2.4 [pa ringdev (device\_ident)](#pa-ringdev-device_ident) - * 2.5 [pa preparestream (in\_device\_ident) (out\_device\_ident) - Prepare an input and output device stream for use](#pa-preparestream-in_device_ident-out_device_ident---prepare-an-input-and-output-device-stream-for-use) - * 2.6 [pa call (number) \[(dialplan)\] \[(cid\_name)\] \[(cid\_num)\] - Place a new call](#pa-call-number-dialplan-cid_name-cid_num---place-a-new-call) - * 2.7 [pa switch \[(call\_id)|none\] - swap to a new active call](#pa-switch-call_idnone---swap-to-a-new-active-call) - * 2.8 [pa list - view the current calls](#pa-list---view-the-current-calls) - * 2.9 [pa dtmf (dtmf\_digits) - send a dtmf string (1234) to the current call](#pa-dtmf-dtmf_digits---send-a-dtmf-string-1234-to-the-current-call) - * 2.10 [pa answer \[(call\_id)\] - Answer a ringing call](#pa-answer-call_id---answer-a-ringing-call) - * 2.11 [pa hangup \[(call\_id)\] - End a call](#pa-hangup-call_id---end-a-call) - * 2.12 [pa rescan - Look for new devices](#pa-rescan---look-for-new-devices) - * 2.13 [pa play \[ringtest|(filename)\] \[(seconds)\] \[no\_close\] - Play an audio file or test stream to a device](#pa-play-ringtestfilename-seconds-no_close---play-an-audio-file-or-test-stream-to-a-device) - * 2.14 [pa playdev (device\_ident) \[ringtest|(filename)\] \[(seconds)\] \[no\_close\] - Play an audio file or test stream to a specific device](#pa-playdev-device_ident-ringtestfilename-seconds-no_close---play-an-audio-file-or-test-stream-to-a-specific-device) - * 2.15 [pa flags on|off \[ear\] \[mouth\] - Set mute or deaf](#pa-flags-onoff-ear-mouth---set-mute-or-deaf) - * 2.16 [pa closestreams - Will close all active open streams](#pa-closestreams---will-close-all-active-open-streams) - * 2.17 [pa dump - Debug dump of all the devices](#pa-dump---debug-dump-of-all-the-devices) -* 3 [Sample Implementations](#sample-implementations) - * 3.1 [Sample Softphone Configuration](#sample-softphone-configuration) - * 3.2 [Sample Mumble \<-> Conference Bridge](#sample-mumble---conference-bridge) - * 3.3 [Sample mod\_portaudio intercom (auto answer)](#sample-mod_portaudio-intercom-auto-answer) - * 3.4 [PA System w/ Chime](#pa-system-w-chime) -* 4 [Web GUI](#portaudioringing) -* 5 [Install Notes](#install-notes) - * 5.1 [RHEL/CentOS](#rhelcentos) - * 5.2 [Windows](#windows) - * 5.3 [macOS](#macos) - * 5.4 [FreeBSD](#freebsd) -* 6 [Reference](#command-reference) - * 6.1 [portaudio.conf settings](#portaudioconf-settings) - * 6.2 [Shared Streams and Endpoints](#shared-streams-and-endpoints) - * 6.3 [Custom Events](#custom-events) -* 7 [See Also](#see-also) - -### Command Reference - -* A device\_ident is either part of the device name or the device ID number (prefixed with a #) seen in pa devlist. - -#### pa help - print usage summary - -Will show the available commands - -#### pa devlist \[xml\] - list audio devices - -The list will be in the following format: device number;short name;input channels;output channels;freeswitch device configuration - -The freeswitch device configuration is a comma separated list of these elements: - -r device is ring device -i device is input device -o device is output device - -For example: - -```xml -API CALL [pa(devlist)] output: -0;AC97 Audio (PCM);2;0 -1;AC97 Audio (PCM);0;2 -2;AC97 Audio (SPDIF);0;2 -3;Jabra BT500;1;1 -``` - - -#### pa indev (device_ident), pa outdev (device_ident), pa switchstream (in_device_ident) (out_device_ident) - Set input/output device streams - -Set the input (indev) or output (outdev) audio stream identified by device\_ident. pa switchstream can switch both streams at once. These functions can only be use during a call if live-stream-switch configuration option is on. - -#### pa ringdev (device_ident) - -Set the device for portaudio to ring on a ringing call. - -#### pa preparestream (in_device_ident) (out_device_ident) - Prepare an input and output device stream for use - -Not required but preparing a stream prior to switching to it using the indev/outdev/switchstream allows portaudio to open the stream prior to using it. This makes for much more seamless switching between streams (no audio cut out). You only need to call this once before switching to that stream, streams are kept open until the end of all active calls. Calling it multiple times on the same stream will not cause delays or have negative effects. - -#### pa call (number) \[(dialplan)\] \[(cid_name)\] \[(cid_num)\] - Place a new call - -If you currently are on a call the existing call is placed on hold. - -#### pa switch \[(call_id)|none\] - swap to a new active call - -If used without args will switch to the previously active call. If a call\_id (from pa list) is past will make that call active. If none is past then all calls are placed on hold. - -#### pa list - view the current calls - -pa list - -#### pa dtmf (dtmf_digits) - send a dtmf string (1234) to the current call - -pa dtmf 1234 - -#### pa answer \[(call_id)\] - Answer a ringing call - -Without a call\_id will answer the oldest call, with the call ID will answer that specific call - -#### pa hangup \[(call_id)\] - End a call - -Will end the current call if no ID is given otherwise will end the call with that ID. - -#### pa rescan - Look for new devices - -Portaudio assumes devices will not change during use, if they do you will need to use rescan for portaudio to see them. As this causes portaudio to re-init several things it cannot be used during an active call. - -#### pa play \[ringtest|(filename)\] \[(seconds)\] \[no_close\] - Play an audio file or test stream to a device - -Allows playing of arbitrary audio on the outdev device, optionally for only a specific number of seconds. no\_close causes the audio stream to remain open after playing (allows for faster concurrent playing) - -#### pa playdev (device_ident) \[ringtest|(filename)\] \[(seconds)\] \[no_close\] - Play an audio file or test stream to a specific device - -Same as play but takes the device to play to also - -#### pa flags on|off \[ear\] \[mouth\] - Set mute or deaf - -Mutes the indev so no audio is directed to an active call, or deaf will silence the outdev from playing and audio - -#### pa closestreams - Will close all active open streams - -By default all streams are only closed at the end of all active calls, you can force them to close using pa closestreams as long as there is not an active call. - -#### pa dump - Debug dump of all the devices - -Dumps a variety of information about the various audio devices PA sees - -### Sample Implementations - -#### Sample Softphone Configuration - -For a sample Softphone configuration, see: [Freeswitch\_Softphone](../Client-and-Developer-Interfaces/Embedding-FreeSWITCH/FreeSWITCH-Softphone_7143559.mdx#about) - -#### Sample Mumble \<-> Conference Bridge - -Available with full instructions for Linux-based configurations at: [Mumble\_conference\_with\_alsa](../Auxiliary-Knowledge-and-Utilities/Mumble-Conference-With-ALSA_13173534.mdx#about) - -#### Sample mod_portaudio intercom (auto answer) - -In your dialplan, you can easily setup a portaudio intercom to dial into. - -```xml - - - - - -``` - -Note, to easily remember the extension number, we use the T9 translate of the acronym "PortAudio INtercom" aka PAIN, which is 7246\. Go ahead and dial 7246 and you will immediately be able to talk over the portaudio speaker :-) - -Note too, in real life you should probably have some kind of notifying tone so nobody can silently eavesdrop on you. - -#### PA System w/ Chime - -A modification to the Intercom sample can be used to feed to a Public Address system. Chime plays before and after paging. - -```xml - - - - - - - - -``` - -**post-chime.lua:** - -```xml - api = freesswitch.API(); - api:execute("pa", "play /tmp/2_tone_chime.wav"); -``` - -### Web GUI - -mod\_xml\_rpc loaded portaudio supplies it's own little GUI [http://your.box:8080/api/pa](http://your.box:8080/api/pa) - -### Install Notes - -#### RHEL/CentOS - -When building from source, make sure the "alsa-lib-devel" package is installed or you may get build errors. - -#### Windows - -Portaudio for windows by default builds with DirectX used for audio. It seems to provide the best results but it is possible to use the two other audio modes if desired by changing the build options. - -#### macOS - -There is a Homebrew formula for portaudio. - -#### FreeBSD - -Tested on FreeBSD-8.1 AMD64 on hardware which meets the 'Intel HD Audio' spec. Add to the FreeBSD kernel config file: - -device snd\_hda device sound. Build and install the new kernel, no additional audio config is required. The configuration in portaudio.conf.xml has indev, outdev and ringdev value="0" Also requires: \ - -\-kimc - -### Reference - -#### portaudio.conf settings - -These options are set in the \ block of the config. - -##### no-ring-during-call - -Prevent an incoming call from ringing the ring device if you are already on a call - -##### no-auto-resume-call - -Do not auto resume the last call when the current call ends - -##### live-stream-switch - -Allows using the indev,outdev, and switchstream commands during a call - -##### indev, outdev, ringdev - -Allows you to preset the specific input and output devices you want portaudio using you can use the same device\_ident values as used in the command reference - -##### debug - -Set the debug level for portaudio - -##### dialplan - -Set the default dialplan for making calls - -##### context - -Set the default context for calls - -##### dual-streams - -The default value is _false_ which means one thread is handling the audio reading/writing from/to the core. Value _true_ means 2 threads are used instead of one. - -#### Shared Streams and Endpoints - -Shared streams and endpoints are completely different than everything else mentioned on this page and are not required for most cases of using portaudio (especially if you are just using FS as a single softphone). They are specifically meant for if you need to use multiple audio devices on different calls at the same time. All of the stream commands above are NOT related to shared streams (just confusing terminology). The only documentation on them is found in the configuration file itself and the code was not tested by a large number of people so stability is not guaranteed. Most of the code paths for shared streams/endpoints are completely different from the rest of portaudio so most of the normal portaudio commands do not work with the shared stream/endpoint system. The commands that related to shared streams are the pa shtreams and pa endpoints commands, not the other stream commands. While you may see errors about shared streams in the console if you do not remove the configuration (per the portaudio.conf note below) these will not stop portaudio from working normally. - -##### portaudio.conf \ and \ - -See the note on shared streams and endpoints above. You can safely remove the \ and \ configuration sections from portaudio.conf if you do not need them, otherwise they will throw some console errors by default (that can be ignored). - -#### Custom Events - -Portaudio emits several custom events for major changes in portaudio. Every event will contain the pa\_call\_id variable to indicate which call is being changed. - -##### portaudio::ringing - -Is emitted when incoming call is received and portaudio plays the ring on the audio device. - -**Event portaudio::ringing** - -```xml -Event-Subclass: portaudio::ringing -Event-Name: CUSTOM -Core-UUID: 950e273a-f74b-11de-bf7c-a394ee5f864b -FreeSWITCH-Hostname: jmesquita.dyndns.org -FreeSWITCH-IPv4: -FreeSWITCH-IPv6: ::1 -Event-Date-Local: 2010-01-02 00:11:00 -Event-Date-GMT: Sat, 02 Jan 2010 03:11:00 GMT -Event-Date-Timestamp: 1262401860975758 -Event-Calling-File: mod_portaudio.c -Event-Calling-Function: channel_on_init -Event-Calling-Line-Number: 265 -event_info: BRRRRING! BRRRRING! call 2 - -call_id: 2 -Channel-State: CS_INIT -Channel-State-Number: 1 -Channel-Name: portaudio/1000 -Unique-ID: 740f37a8-f74c-11de-bf81-a394ee5f864b -Call-Direction: outbound -Presence-Call-Direction: outbound -Answer-State: ringing -Channel-Read-Codec-Name: L16 -Channel-Read-Codec-Rate: 48000 -Channel-Write-Codec-Name: L16 -Channel-Write-Codec-Rate: 48000 -Caller-Username: 1000 -Caller-Dialplan: XML -Caller-Caller-ID-Name: Mesquita -Caller-Caller-ID-Number: 1000 -Caller-Network-Addr: -Caller-ANI: 1000 -Caller-Unique-ID: 740f37a8-f74c-11de-bf81-a394ee5f864b -Caller-Source: mod_sofia -Caller-Context: public -Caller-Channel-Name: portaudio/1000 -Caller-Profile-Index: 1 -Caller-Profile-Created-Time: 1262401860435762 -Caller-Channel-Created-Time: 1262401860435762 -Caller-Channel-Answered-Time: 0 -Caller-Channel-Progress-Time: 1262401860975758 -Caller-Channel-Progress-Media-Time: 0 -Caller-Channel-Hangup-Time: 0 -Caller-Channel-Transfer-Time: 0 -Caller-Screen-Bit: true -Caller-Privacy-Hide-Name: false -Caller-Privacy-Hide-Number: false -Other-Leg-Username: 1000 -Other-Leg-Dialplan: XML -Other-Leg-Caller-ID-Name: Mesquita -Other-Leg-Caller-ID-Number: 1000 -Other-Leg-Network-Addr: -Other-Leg-ANI: 1000 -Other-Leg-Destination-Number: 1001 -Other-Leg-Unique-ID: 73b8a0dc-f74c-11de-bf80-a394ee5f864b -Other-Leg-Source: mod_sofia -Other-Leg-Context: public -Other-Leg-Channel-Name: sofia/softphone/1000@ -Other-Leg-Profile-Created-Time: 0 -Other-Leg-Channel-Created-Time: 0 -Other-Leg-Channel-Answered-Time: 0 -Other-Leg-Channel-Progress-Time: 1262401860975758 -Other-Leg-Channel-Progress-Media-Time: 0 -Other-Leg-Channel-Hangup-Time: 0 -Other-Leg-Channel-Transfer-Time: 0 -Other-Leg-Screen-Bit: true -Other-Leg-Privacy-Hide-Name: false -Other-Leg-Privacy-Hide-Number: false -variable_channel_name: portaudio/1000 -variable_is_outbound: true -variable_max_forwards: 67 -variable_originator_codec: PCMU@8000h@20i -variable_originator: 73b8a0dc-f74c-11de-bf80-a394ee5f864b -variable_signal_bond: 73b8a0dc-f74c-11de-bf80-a394ee5f864b -variable_switch_m_sdp: v=0 -o=FreeSWITCH 1262373184 1262373185 IN IP4 -s=FreeSWITCH -c=IN IP4 -t=0 0 -m=audio 18000 RTP/AVP 0 8 3 101 13 -a=rtpmap:0 PCMU/8000 -a=rtpmap:8 PCMA/8000 -a=rtpmap:3 GSM/8000 -a=rtpmap:101 telephone-event/8000 -a=fmtp:101 0-16 -a=rtpmap:13 CN/8000 -a=ptime:20 - -variable_originate_early_media: true -variable_pa_call_id: 2 -variable_read_codec: L16 -variable_read_rate: 48000 -variable_write_codec: L16 -variable_write_rate: 48000 -``` - -portaudio::makecall - -Is emitted when a call is placed using pa call API command. fail header is set to true \_ONLY\_ the mod\_portaudio fails to spawn the session, not if call is not completed. - -**Event portaudio::makecall** - -```xml -Event-Subclass: portaudio::makecall -Event-Name: CUSTOM -Core-UUID: 950e273a-f74b-11de-bf7c-a394ee5f864b -FreeSWITCH-Hostname: -FreeSWITCH-IPv4: -FreeSWITCH-IPv6: ::1 -Event-Date-Local: 2010-01-02 00:05:45 -Event-Date-GMT: Sat, 02 Jan 2010 03:05:45 GMT -Event-Date-Timestamp: 1262401545047757 -Event-Calling-File: mod_portaudio.c -Event-Calling-Function: place_call -Event-Calling-Line-Number: 1810 -Channel-State: CS_INIT -Channel-State-Number: 1 -Channel-Name: portaudio/1000 -Unique-ID: b7c096e6-f74b-11de-bf7e-a394ee5f864b -Call-Direction: inbound -Presence-Call-Direction: inbound -Answer-State: answered -Channel-Read-Codec-Name: L16 -Channel-Read-Codec-Rate: 48000 -Channel-Write-Codec-Name: L16 -Channel-Write-Codec-Rate: 48000 -Caller-Dialplan: XML -Caller-Caller-ID-Name: FreeSWITCH -Caller-Caller-ID-Number: 0000000000 -Caller-Network-Addr: -Caller-Destination-Number: 1000 -Caller-Unique-ID: b7c096e6-f74b-11de-bf7e-a394ee5f864b -Caller-Source: mod_portaudio -Caller-Context: default -Caller-Channel-Name: portaudio/1000 -Caller-Profile-Index: 1 -Caller-Profile-Created-Time: 1262401544513764 -Caller-Channel-Created-Time: 1262401544513764 -Caller-Channel-Answered-Time: 1262401545047757 -Caller-Channel-Progress-Time: 0 -Caller-Channel-Progress-Media-Time: 0 -Caller-Channel-Hangup-Time: 0 -Caller-Channel-Transfer-Time: 0 -Caller-Screen-Bit: true -Caller-Privacy-Hide-Name: false -Caller-Privacy-Hide-Number: false -variable_channel_name: portaudio/1000 -variable_endpoint_disposition: ANSWER -variable_pa_call_id: 1 -variable_read_codec: L16 -variable_read_rate: 48000 -variable_write_codec: L16 -variable_write_rate: 48000 -fail: false -``` - -##### portaudio::callheld - -Event when call is put on hold - -##### portaudio::callresumed - -Event when a call is taken off hold - -### See Also - -* [Getting Fancy With PortAudio](../Dialplan/XML-Dialplan/index.mdx#getting-fancy-with-portaudio) -* [FSAir](../Client-and-Developer-Interfaces/Freeswitch-GUI/FS-Air_13173094.mdx#about) - - - diff --git a/docs/FreeSWITCH-Explained/Modules/mod_xml_curl_1049001.mdx b/docs/FreeSWITCH-Explained/Modules/mod_xml_curl_1049001.mdx index 1a16b533..4be8c557 100644 --- a/docs/FreeSWITCH-Explained/Modules/mod_xml_curl_1049001.mdx +++ b/docs/FreeSWITCH-Explained/Modules/mod_xml_curl_1049001.mdx @@ -547,7 +547,7 @@ REQUEST: ```xml section=dialplan&tag_name=&key_name=&key_value=&context=default&destination_number=556 &caller_id_name=FreeSwitch&caller_id_number=5555551212&network_addr=&ani=&aniii=&rdnis= -&source=mod_portaudio&chan_name=PortAudio/556&uuid=b7f0b117-351f-9448-b60a-18ff91cbe183 +&uuid=b7f0b117-351f-9448-b60a-18ff91cbe183 &endpoint_disposition=ANSWER ``` diff --git a/docs/FreeSWITCH-Explained/Networking/Auto-Nat_6587487.mdx b/docs/FreeSWITCH-Explained/Networking/Auto-Nat_6587487.mdx index 285395c5..bcab8679 100644 --- a/docs/FreeSWITCH-Explained/Networking/Auto-Nat_6587487.mdx +++ b/docs/FreeSWITCH-Explained/Networking/Auto-Nat_6587487.mdx @@ -103,48 +103,6 @@ During startup process you can look for a debug line to see what external IP is NOTE : NAT detection happens irrespective of the above settings. To turn it off use "-nonat" to start freeswitch. If you still prefer to have NAT detection, but avoiding the port mapping using UPnP/NAT-PMP you can use "-nonatmap". -## Making A Test Call - -For this test I will use [portaudio](../Modules/mod_portaudio_9634724.mdx#about), but you can also register a SIP phone to make a test call - see below. We'll use the public FreeSWITCH conference echo test so that we can verify audio in both directions. If you make a call and can hear your voice echoed back to you then everything is working properly. Here's a sample console session: - -```xml -freeswitch> pa call sip:9196@conference.freeswitch.org - -2009-06-04 13:24:57 [NOTICE] switch_channel.c:602 switch_channel_set_name() New Channel portaudio/sip:9196@conference.freeswitch.org [77d54b4c-d395-af49-8950-2fe99635a0be] -Pa_StartStream: waveInStart returned = 0x0. -2009-06-04 13:24:58 [NOTICE] mod_PortAudio.c:1773 place_call() Channel [portaudio/sip:9196@conference.freeswitch.org] has been answered -API CALL [pa(call sip:9196@conference.freeswitch.org)] output: -SUCCESS:4:77d54b4c-d395-af49-8950-2fe99635a0be - -2009-06-04 13:24:58 [INFO] mod_dialplan_xml.c:252 dialplan_hunt() Processing FreeSWITCH->sip:9196@conference.freeswitch.org in context default - -2009-06-04 13:24:58 [NOTICE] switch_channel.c:602 switch_channel_set_name() New Channel sofia/internal/9196@conference.freeswitch.org [b34bd3c1-11ba-c54c-a518-4ca11f756726] -2009-06-04 13:24:58 [NOTICE] sofia.c:3605 sofia_handle_sip_i_state() Channel [sofia/internal/9196@conference.freeswitch.org] has been answered -``` - -At this point you should be able to hear yourself echo. If not then you'll need to start doing network troubleshooting. See [Reporting\_Bugs](../Troubleshooting-Debugging/Reporting-Issues-to-GitHub_5046304.mdx#about) for guidelines on collecting information and interacting with the mailing list and IRC channel. - -Now hang up the call: - -```xml -freeswitch> pa hangup - -2009-06-04 13:25:07 [NOTICE] mod_PortAudio.c:1549 hangup_call() Hangup portaudio/sip:9196@conference.freeswitch.org [CS_EXECUTE] [NORMAL_CLEARING] -API CALL [pa(hangup)] output: -OK - -2009-06-04 13:25:07 [NOTICE] switch_ivr_bridge.c:505 audio_bridge_on_exchange_media() Hangup sofia/internal/9196@conference.freeswitch.org [CS_EXCHANGE_MEDIA] [ -NORMAL_CLEARING] - -2009-06-04 13:25:07 [NOTICE] switch_core_session.c:1085 switch_core_session_thread() Session 7 (sofia/internal/9196@conference.freeswitch.org) Ended -2009-06-04 13:25:07 [NOTICE] switch_core_session.c:1087 switch_core_session_thread() Close Channel sofia/internal/9196@conference.freeswitch.org [CS_DESTROY] -WinMME StopStream: waiting for background thread. -2009-06-04 13:25:08 [NOTICE] switch_core_session.c:1085 switch_core_session_thread() Session 6 (portaudio/sip:9196@conference.freeswitch.org) Ended -2009-06-04 13:25:08 [NOTICE] switch_core_session.c:1087 switch_core_session_thread() Close Channel portaudio/sip:9196@conference.freeswitch.org [CS_DESTROY] -``` - -Congratulations! If you've gotten this far then you have been spared the brunt of the NAT horrors that others have endured. - ## Making A Test Call and bridging to a SIP phone This will call the conference and ring the sip phone for user 105 in the default domain. diff --git a/docs/FreeSWITCH-Explained/Troubleshooting-Debugging/Debugger_1048961.mdx b/docs/FreeSWITCH-Explained/Troubleshooting-Debugging/Debugger_1048961.mdx index 01976746..a86affca 100644 --- a/docs/FreeSWITCH-Explained/Troubleshooting-Debugging/Debugger_1048961.mdx +++ b/docs/FreeSWITCH-Explained/Troubleshooting-Debugging/Debugger_1048961.mdx @@ -176,7 +176,7 @@ User is optional, and is the name given when submitting the pastebin. If it is o ### gdb issues -On Ubuntu (Dapper/Hardy/Jaunty) gdb does not show symbols for some modules (e.g. mod\_portaudio), while CentOS 5.3 haven't got such issue. +On Ubuntu (Dapper/Hardy/Jaunty) gdb does not show symbols for some modules, while CentOS 5.3 haven't got such issue. The reason of the issue is that gdb in Ubuntu (probably Debian is affected too) is buggy. As a quick fix you can install development version of gdb from sources (install flex, bison and texinfo and get sources from git repository) which solves the issue. gdb trunk 20090626 is proven to work. diff --git a/docs/FreeSWITCH-Explained/Troubleshooting-Debugging/Debugging-Freeswitch_9633850.mdx b/docs/FreeSWITCH-Explained/Troubleshooting-Debugging/Debugging-Freeswitch_9633850.mdx index 27eebec8..87ff41f0 100644 --- a/docs/FreeSWITCH-Explained/Troubleshooting-Debugging/Debugging-Freeswitch_9633850.mdx +++ b/docs/FreeSWITCH-Explained/Troubleshooting-Debugging/Debugging-Freeswitch_9633850.mdx @@ -188,7 +188,7 @@ User is optional, and is the name given when submitting the pastebin. If it is o ### gdb issues -On Ubuntu (Dapper/Hardy/Jaunty) gdb does not show symbols for some modules (e.g. mod\_portaudio), while CentOS 5.3 haven't got such issue. +On Ubuntu (Dapper/Hardy/Jaunty) gdb does not show symbols for some modules while CentOS 5.3 haven't got such issue. The reason of the issue is that gdb in Ubuntu (probably Debian is affected too) is buggy. As a quick fix you can install development version of gdb from sources (install flex, bison and texinfo and get sources from git repository) which solves the issue. gdb trunk 20090626 is proven to work. diff --git a/provisioning/nginx/redirects.map b/provisioning/nginx/redirects.map index e3fa6503..d4e67fee 100644 --- a/provisioning/nginx/redirects.map +++ b/provisioning/nginx/redirects.map @@ -1595,7 +1595,6 @@ /freeswitch/confluence-to-docs-redirector/display/FREESWITCH/mod_osp /freeswitch/FreeSWITCH-Explained/Modules/mod_osp_6587434; /freeswitch/confluence-to-docs-redirector/display/FREESWITCH/mod_perl /freeswitch/FreeSWITCH-Explained/Modules/mod_perl_1048930; /freeswitch/confluence-to-docs-redirector/display/FREESWITCH/mod_pocketsphinx /freeswitch/FreeSWITCH-Explained/Modules/mod_pocketsphinx_13173540; -/freeswitch/confluence-to-docs-redirector/display/FREESWITCH/mod_portaudio /freeswitch/FreeSWITCH-Explained/Modules/mod_portaudio_9634724; /freeswitch/confluence-to-docs-redirector/display/FREESWITCH/mod_posix_timer /freeswitch/FreeSWITCH-Explained/Modules/mod_posix_timer_13173496; /freeswitch/confluence-to-docs-redirector/display/FREESWITCH/mod_python /freeswitch/FreeSWITCH-Explained/Modules/mod_python_1048940; /freeswitch/confluence-to-docs-redirector/display/FREESWITCH/mod_rad_auth /freeswitch/FreeSWITCH-Explained/Modules/mod_rad_auth_3964951; From 186c3f737c0b9eb8494450aa906abdb715a98c10 Mon Sep 17 00:00:00 2001 From: "@katherinemaack" Date: Sun, 4 May 2025 11:23:25 -0700 Subject: [PATCH 2/2] missed instances of PortAudio --- .../FreeSWITCH-Softphone_7143559.mdx | 2 -- .../Variables-Archive/x__Variables_6587314.mdx | 12 ------------ .../Dialplan/XML-Dialplan-archive_6586601.mdx | 12 ++---------- .../Interoperability/Softphones/FSComm_7143564.mdx | 2 +- 4 files changed, 3 insertions(+), 25 deletions(-) diff --git a/docs/FreeSWITCH-Explained/Client-and-Developer-Interfaces/Embedding-FreeSWITCH/FreeSWITCH-Softphone_7143559.mdx b/docs/FreeSWITCH-Explained/Client-and-Developer-Interfaces/Embedding-FreeSWITCH/FreeSWITCH-Softphone_7143559.mdx index 13a15c2e..c6322af3 100644 --- a/docs/FreeSWITCH-Explained/Client-and-Developer-Interfaces/Embedding-FreeSWITCH/FreeSWITCH-Softphone_7143559.mdx +++ b/docs/FreeSWITCH-Explained/Client-and-Developer-Interfaces/Embedding-FreeSWITCH/FreeSWITCH-Softphone_7143559.mdx @@ -5,8 +5,6 @@ ## About -Configuration ideas using PortAudio as a means to exchange audio between FreeSWITCH™ and the outside world. - Most of the work on this page on the old wiki was prior to March of 2010\. Some configurations and variable names have changed since then. ## FreeSWITCH as a Dedicated Soft Phone diff --git a/docs/FreeSWITCH-Explained/Dialplan/Variables-Archive/x__Variables_6587314.mdx b/docs/FreeSWITCH-Explained/Dialplan/Variables-Archive/x__Variables_6587314.mdx index bc460a0e..e96002a2 100644 --- a/docs/FreeSWITCH-Explained/Dialplan/Variables-Archive/x__Variables_6587314.mdx +++ b/docs/FreeSWITCH-Explained/Dialplan/Variables-Archive/x__Variables_6587314.mdx @@ -192,18 +192,6 @@ Example needed! Please contribute one. Execute an API command after bridge. - -**Usage:** - -Paging to PA System via Portaudio (w/ chime before and after announcement) - - -**Implemented By:** - -| **Module Name** | **Source File** | **Last Revised** | -| --------------- | --------------------- | ---------------- | -| core | switch\_ivr\_bridge.c | 7885 | - ## api_hangup_hook Execute an API command on hangup. diff --git a/docs/FreeSWITCH-Explained/Dialplan/XML-Dialplan-archive_6586601.mdx b/docs/FreeSWITCH-Explained/Dialplan/XML-Dialplan-archive_6586601.mdx index 43db61fb..1e4b4cf2 100644 --- a/docs/FreeSWITCH-Explained/Dialplan/XML-Dialplan-archive_6586601.mdx +++ b/docs/FreeSWITCH-Explained/Dialplan/XML-Dialplan-archive_6586601.mdx @@ -537,8 +537,8 @@ The following variables, called 'caller profile fields', can be accessed from co * **ani** Automatic Number Identification, the number of the calling party (caller) -- cannot be masked * **aniii** The type of device placing the call [ANI2](http://www.voip-info.org/wiki/view/ANI2) * **uuid** Unique identifier of the current call? (looks like a GUID) -* **source** Name of the FreeSWITCH module that received the call (e.g. PortAudio) -* **chan\_name** Name of the current channel (Example: PortAudio/1234). Give us examples when this one can be used. +* **source** Name of the FreeSWITCH module that received the call +* **chan\_name** Name of the current channel. Give us examples when this one can be used. * **network\_addr** IP address of the signaling source for a VoIP call. * **year** Calendar year, 0-9999 * **yday** Day of year, 1-366 @@ -1338,14 +1338,6 @@ Occasionally you may want to force the system to use a specific codec. This synt In this example, XXXX represents the codec to be used. The possible codec values are listed [here](https://wiki.freeswitch.org/wiki/Codecs#Codec%5FList "Codecs"). Additional dialstring examples from [Absolute Codec String variable](https://wiki.freeswitch.org/wiki/Variable%5Fabsolute%5Fcodec%5Fstring "Variable absolute codec string"). -#### Getting Fancy With PortAudio - -If you have PortAudio running and would like to specify the codec you need to originate first and bridge second: - -```xml -originate {absolute_codec_string=XXXX}sofia/default/foo@bar.com inline -``` - #### Changing the SIP Contact user FreeSWITCH normally uses mod\_sofia@ip:port for the internal SIP contact. To change this to foo@ip:port, there is a variable, sip\_contact\_user: diff --git a/docs/FreeSWITCH-Explained/Interoperability/Softphones/FSComm_7143564.mdx b/docs/FreeSWITCH-Explained/Interoperability/Softphones/FSComm_7143564.mdx index d304dcd0..451cbb48 100644 --- a/docs/FreeSWITCH-Explained/Interoperability/Softphones/FSComm_7143564.mdx +++ b/docs/FreeSWITCH-Explained/Interoperability/Softphones/FSComm_7143564.mdx @@ -13,7 +13,7 @@ References to "I" or "me" are to the author, Mitch Capper. FSComm is based on libfreeswitch, which means that FSComm fully embeds the FreeSWITCH™ core and all its modules within the same application. -FSHost is responsible for dealing with the FreeSWITCH™ core and all its modules, including PortAudio, responsible for providing audio through the audio card installed on your computer. This design, enables FSComm to be extended as FreeSWITCH™ gets extended by other loadable modules, independently of their nature. As new audio/video codecs are added, FSComm will natively inherit the addition. Modules planned to be supported on the first release are all endpoint modules (hence the Communicator on the name, not just Softphone), all codec modules and PortAudio. +FSHost is responsible for dealing with the FreeSWITCH™ core and all its modules which are responsible for providing audio through the audio card installed on your computer. This design, enables FSComm to be extended as FreeSWITCH™ gets extended by other loadable modules, independently of their nature. As new audio/video codecs are added, FSComm will natively inherit the addition. Modules planned to be supported on the first release are all endpoint modules (hence the Communicator on the name, not just Softphone) and all codec modules. FreeSWITCH™ is often extended by third party applications through its CTI port called Event Socket Consumer. The same concept can apply to FSComm. Using FreeSWITCH™'s event subsystem, a third party application can control the softphone locally or remotely depending on its configuration providing great flexibility and language independence on call control. This is the first unique feature of the Communicator not found anywhere else on the market.