BLASTERISK

From blag.wiki.aktivix.org

Jump to: navigation, search

Contents

Overview

<rabble> it's a little weird, but it works

BLASTERISK is the free BLAG telephone service for Free Software users, developers, and random activists.

BLASTERISK allows users to use regular POTS ("plain old telephone service") telephones or software telephones (softphones) to connect to the system. Callers can then make outgoing international phone calls, enter conference rooms, leave voicemail, check voicemail, do interviews, etc.

BLASTERISK uses the Free Software application asterisk.

Dial in Numbers

The list of current BLASTERISK local telephone numbers is at http://www.blagblagblag.org/BLASTERISK/

Local telephone numbers are available for various locations around the world. If there is a local number for your location, please use that instead of a national toll free number. If there isn't a local number for your city or country email blasterisk@blagblagblag.org to request a number. Please give an example of a local number (this makes it easier to figure out what is in the local calling area).

Softphones

There are a wide variety of softphones to use with BLASTERISK. BLASTERISK uses either the IAX or SIP protocol. SIP is more common. IAX works more easily on NAT'd networks.

BLAG50k includes kiax pre-configured to work with BLASTERISK. See the kiax page for a HOWTO.

If you are running BLAG 30k or don't have it installed in 50k, you can install a softphone that will work with blasterisk thusly:

apt-get update
apt-get install kiax


Right now you can use user "blagger" and password "blagblag" to connect. The hostname is blasterisk.blagblagblag.org. I don't want know what happens when multiple people use the "blagger" account at the same time... If you want your own dedicated account, email blasterisk@blagblagblag.org to have one set up (please also explain "why" you want to use it--i'm curious!).

Other Free Software softphones are: ekiga (formerly gnomemeeting), qtiax, linphone, twinkle, iaxcomm, kphone, kphoneSI, openwengo, sflphone.

On Mac OSX, Free Software IAX2 softphones include: JackenIAX and IAXcomm

Untested jabber clients with VoIP: jabbin.

Menu

Below is an outline of the BLASTERISK dial-in menu.

Main Menu

1 - Nothing
2 - BLAG
3 - Nothing
4 - Personal Extensions
5 - Indymedia
6 - Nothing
7 - Random Hacks
8 - Temporary event based services
9 - Outside Line ("call anywhere in the world")
0 - Operator (jebba--currently disabled...)
* - Nothing
# - Nothing

BLAG Menu

1 - Tech Support
2 - Voice mail
3 - Conference Room
4 - Nothing
5 - Nothing
6 - Nothing
7 - Nothing
8 - Nothing
9 - Nothing
0 - Operator (jebba)
* - Nothing
# - Main Menu

Indymedia Menu

1 - Conference Room
2 - Pittsburgh Indymedia
3 - Indymedia Global Headlines
4 - Indymedia Global Lead Story
5 - Tejiendo el 1 de Mayo
6 - UK Indymedia - http://docs.indymedia.org/view/Local/ImcUkPhoneServices
7 - Nothing
8 - Nothing
9 - Nothing
0 - Operator (jebba)
* - Nothing
# - Main Menu

This menu needs quite a bit of thought. Right now only Pittsburgh is set up for voicemail and Philly has made some preliminary inquiries.

Comments: Voicemail, conference room, an extension to publish into the newswire and an extension to contact any person from the imc. Gaba.

Selecting the IMC

Down the road there will likely be many more indys using the system. How should the caller select which indymedia?

  • The menu could be broken down by region (e.g. "press 1 for europe, 2 for asia, 3 for north america", etc.).
  • The user could spell with their phone which indy they want. The voicemail system can do this. This may be a bit too much for callers to do though (it's a bit confusing). And we'd have to do multiple spellings for the various languages.
  • The caller could enter the calling country code they are from (e.g. 1 for US, 44 for UK, 33 for France). The problem with this is many people don't know their own country code.

Comments:

I would agree in the menu broken down by region. In the main menu a option to go to indymedia, and in the indymedia menu select wich region and in the region select which imc. That would be for the people that go into blasterisk and they previously dont know the "general extension" for the imc. Each imc should have an extension that the people from the imc can dial in when they just call blasterisk.Gaba. buy and sell runescape accounts

Languages

Since this is indymedia, it needs to be in a bunch of languages. One way to pick the language is to base it on CID (called ID) info, if available. This will take quite a bit of extensions.conf voodoo.

Comments:

I personally disagree with this of give a language depending of the CID. There is a lot of languages in many places and it does not depend from where you are what you talk. We should give options in the beginning. Something like a general language menu when entering the blasterisk system. Gaba.

Headlines

This may be a completely unused feature, but it is possible to have the system read the most recent headlines and/or stories. Sort of gimicky.

Fone->Newswire

It is also possible to be able to phone in stories to the newswire. This would use an email->newswire gateway or something similar. Some indymedias have this set up already. I'm not sure how they handle attachments though. The attachments would be mono .wavs, but could be converted to mp3 or ogg. Indymedia Melbourne already implemented something like that called PIMP (http://melbourne.indymedia.org/pimp.php)

Personal Extensions

A bunch of personal extensions have been set up. I'll list them here as folks say they want to be on the list, or just add yourself. :) (note this section disappeared for quite awhile due to someone trying to fix spam, so lots of extensions haven't arrived...).

* 22 jebba (Jeff Moe)
* 278487 arthur
* 3825 octothorp
* 3831 octothorp
* 4122 mtoups
* 4222 [station 40 http://www.3030b.org] (gaba)
* 4300 kwadronaut
* 53652 jenka
* 5787 alster
* 6700 kariva
* 6701 kariva
* 747387 http://www.riseup.net
* 7777 cabezon
* 7999 bartecchi

Random Hacks Menu

(first dial 7 - see above)

9 - Outside line
600 - Echo test
601 - Echo test without tedious intro
603 - Read back caller id
604 - Milliwatt
605 - Say back DTMF tone
650 - Playtones (indications.conf)
2100 - sphinx (voice recognition) tests
2101 - sphinx (voice recognition) numbers between 0-9 tests
2444 - Say a bunch of countries...
NNN - lots more random stuff...
* - Nothing
# - Main Menu

Call Time Limits & Blocks

  • Some prefixes have been blocked because they are over-expensive (like satellite phones @ $10/minute!).
  • Most prefixes are limited to 15 minutes
  • Some prefixes have been limited to shorter call lengths. This is often to mobile phones, so if possible make contact via a landline instead of a cell phone

If you need to make a longer call to an area for a specific reason such as doing an interview send an email to blasterisk@blagblagblag.org or call the operator and it can be arranged. :)

Providers

BLASTERISK gets service from upstream providers (comparable to buying Internet access from the phone/cable company). It is possible for us to provide this service with our own equipment in areas with a device such as the Sipura 3000. Using a Sipura, someone in Rome, for example, could get a regular landline, plug the Sipura into their Internet connection and provide a gateway between the PSTN (Public Switched Telephone Network) and the Internet. This has been tested to a limited extent with BLASTERISK (e.g. we know it "works"), but no origination or termination is currently being used this way. Shortly, we'll be using a Sipura to provide a local DID ("Direct Inward Dialing"--a telephone number) in Palestine where we are unable to get a DID from an upstream provider. In a nice geeky fantasy, we have these devices all over the world. :)


Here's a list of vendors BLASTERISK is currently using:

Not used much. Owned by IPClearingBoard. Does termination for IAX2. Easy asterisk setup is the focus of the service.

Not used much. Owned by IPClearingBoard. Provider of termination. Less expensive than asteriskout, but you have to pick routes. High maintainence because there is lots of churn of routes. Cool too, because you can drill down and pick your routes more precisely.

Owned by IPClearingBoard. Provider of termination. Less expensive than buymin not counting monthly base fee. You have to pick routes. You can sell routes.

Kind of weird. Expensive, but seems to be able to terminate to places where others can't (such as some Middle East countries).

A marketplace where you can buy incoming DIDs from a wide variety of vendors. You don't deal with the vendor directly--it is all handled through didx.org. DIDs from a number of different countries are instantly available. Service quality varies hugely due to the different vendors. You can test a DID and keep it or drop it.

He was providing some termination briefly (mainly to Germany), but he has disappeared from talking to Indymedia, though he lurks.

Provides US/Canada DIDs and worldwide termination. Probably the most expensive provider on this list, but has rates in line with many "consumer/soho" grade services (the other vendors are a bit more like "wholesalers"). Their customer service is exceptional. They provide one of BLAG's 1-888 numbers (the DID used the most by far). jebba's favorite provider. :)

Does CA/USA DIDs and worldwide termination. Looks to be a company run by one person in Canada (smart, odd, etc. ;) Started being used more 2006-10-12.

Sells MCI Standard, MCI Premium, WaveCrest, Teleglobe, Arbinet termination at supposedly wholesale rates. They say there is no markup, they make their money simply off bonuses (e.g. get $100 back for every million minutes or somesuch). Services is good. Based in Latvia (?).

Provides the Moscow DID. In general quite helpful as the Moscow telco scene is a bit chaotic.

Provides USA/Canada DIDs and worldwide termination. Web interfaces is very alpha, service is generally good. Customer support is on/off.

Somehow these folks PAY you if you send them USA toll free calls (1-800, 1-888, 1-866, 1-877), so BLASTERISK first tries to terminate these calls with their service. They also pay you to use their DIDs, but they are "out" of them right now.

Only does origination (DIDs). Based in Belgium. BLAG gets many numbers from around the world from these folks. Their customer services is quite good, they interface with asterisk easily, they've been reliable "enough".

Termination services. Reasonable cost, generally works, ok web interface.

Logs

As of 20061123 BLASTERISK is now logging CDR (call detail records). This is just to get an understanding of how it is being used. The upstream vendors have their own logs (though perhaps of just one leg of the call). As a side note, BLASTERISK calls are not encrypted either so don't think of it as a "secure" phone call just because it's using some newfangled tech.

QoS

Notes for future inclusion of QoS in OpenBSD's pf.conf

altq on $ext_if priq bandwidth 520Kb queue { q_pri, q_def, q_bulk, q_crap }
queue q_pri priority 7
queue q_def priority 5 priq(default)
queue q_bulk priority 1
queue q_crap priority 0

pass in quick proto udp from any to any port {$voip_udp} \
               keep state queue (q_pri)


Heres my pf.conf, it works for doing QoS to the asterisk box


  1. macro definitions
  1. ifs

ext_if="fxp0" our_if="dc0" voisin_if="dc1" int_if="{ dc0, dc1 }"

    1. networks

our_lan="192.168.10.0/24" voisin_lan="192.168.20.0/24" int_lans= "{192.168.10.0/24 192.168.20.0/24}"

    1. hosts
  1. trixboxen="{192.168.10.177 192.168.10.178}"

trixboxen="{192.168.10.178}"

                  1. Ports

firewall_tcp_services="{ 113 }" icmp_types="echoreq"

      1. VOIP


  1. tcp
  1. tcp_port_range="30000:30010"
  2. GM tcp_listening_port="1720"

tcp_sip="5060:5070"

  1. udp
  1. GM rtp_port_range="5000:5016"

rtp_port_range="8766:35000" stun="3478" udp_sip="5060:5070"

  1. GM rtp_rtcp="8000:8006"

asterisk_rtp="10000:20000" iax2="4569" iax="5036" mgcp="2727"

          1. summarized

voip_tcp=$tcp_sip

       # $tcp_port_range $tcp_listening_port

voip_udp=$rtp_port_range $udp_sip $stun $asterisk_rtp $iax $iax2 $mgcp

       # $rtp_rtcp
  1. options: "set"

set block-policy drop set optimization conservative set skip on lo

set loginterface fxp0


  1. scrub

scrub in

  1. QoS stuff

altq on $ext_if priq bandwidth 520Kb queue { q_pri, q_def, q_bulk, q_crap } queue q_pri priority 7 queue q_def priority 5 priq(default) queue q_bulk priority 1 queue q_crap priority 0



  1. NAT rules: "rdr", "nat", "binat"

nat on $ext_if from !($ext_if) -> ($ext_if:0) rdr on $ext_if proto tcp from any to any port {$voip_tcp} -> $trixboxen rdr on $ext_if proto udp from any to any port {$voip_udp} -> $trixboxen

  1. filtering rules: "antispoof", "block", "pass"
  1. block all

block in pass out keep state

antispoof quick for $int_if antispoof quick for lo

block drop in quick on $voisin_if from $voisin_lan to $our_lan block drop in quick on $voisin_if proto tcp from $voisin_lan to \

       $voisin_lan port ssh


    1. asterisk

pass in quick proto udp from any to any port {$voip_udp} \

               keep state queue (q_pri)
    1. firewall ports


pass in inet proto icmp all icmp-type $icmp_types \

       keep state queue (q_def, q_pri)

pass quick on $int_if

TODO & Brainstorms

  • MAKE IT SO PEOPLE CAN'T CALL BACK OVER & OVER.
  • Sphinx2 or Sphinx3 voice recognition -- Somewhat working at a test level (see Hacks menu). "telephone-bandwidth models": http://www.speech.cs.cmu.edu/pocketsphinx/Communicator.cd_semi_6000_delinterp.tar.gz
  • Updated scripts similar to BLASTERISK's implementation: http://uc.org/read/sprec
  • Other voice recognition to check out: http://htk.eng.cam.ac.uk/ http://julius.sourceforge.jp/en/julius.html
  • Integrate MySQL or Postgres
  • Set up QoS on the firewall
  • Village Earth section? Lakota translation.
  • Also, do LCR (least cost routing)
  • Get dundi going
  • get fwdout going
  • Peer using VPN with other blasterisk boxes, such as in SF and Madrid
  • Set up a web GUI so folks can manage their section.
  • Easier way to call in and record voice prompts. Example: "please record 'press one'". Then the person says "press one", it plays it back and says "is that cool?", if so, it saves it.
  • Personal sections. I don't like this word--I'd like another. But something like from the main menu "hit 3 for your personalized section" or something. Then the user keys in their PIN (it would have to be 5 digits to prevent "war(pbx) dialing"). Then they have whatever custom thing they want. Like their own mailbox (like for non-indy, non-blag folks). Or their own phone directory. Or call back numbers. Basically anything that's specific to a particular person.
  • Connect to other Asterisk Servers. Think about ways to connect to other networks/asterisk servers. [1]
  • Secure RTP (STRP) http://www.e164.org/wiki/AsteriskSRTP
  • Connect cellphone to asterisk box for in/out calls: http://www.celliax.org/ (note, this or something similar has hit asterisk trunk, i think)

Done

February 2008

  • Asterisk 1.4
  • "Free" long distance
  • Voicemail to email
  • Conferencing
  • Radio interviews
  • Phone to blog (Guantanamo Witness Against Torture, politechnicart.net DAVISDI mobile active?)
  • Another implementation of phone2blog by jaromil http://lab.dyne.org/Phone2Podcast
  • Playback of internet radio
  • Phone to internet radio
  • Voice recognition
  • callbacks
  • asterisk to jabber
  • SMS triggers (e.g. callerID of who is calling)
  • pittsburgh IMC: leave voicemail, check voicemail, headlines, listen to rustbelt radio, phone interviews, conference by mtoups
  • softfones
  • "tech support" / call queuing
  • idea to have people call in, get info about a topic, then connect them to a certain number (used a bit in Oaxaca)
  • UK Climate Camp (no idea about this! looks like call in for info, directions, conferencing, leave reports, etc) by Ben
  • Caller ID to reverse white pages to google maps
  • have people "call each other"
  • throw people into conference rooms
  • linksys "mobile fone"
  • remote scripts (e.g. make a fone call and a program is triggered on a remote machine)
  • Ruby on Rails (no clue)
  • Lakota Pine Ridge Reservation
  • "Personal" extensions to call people's softphones, fones, or voicemail...
  • Conference recordings
  • Call in, make recording, add numbers, blast it out... phone blasts
  • calling out to people to protest their actions (e.g. hit 1 to connect to corporate media overlord, 2 for some governor's office, etc)
  • rabble's sf mayday thing (?)
  • travellers/gipsy's conference setup
  • Indymedia headlines (text to speech)
  • gtalk = jingle = iax/jabber
  • built in http server
  • echo tests
  • SMS gateway set up. SMS from the dialplan!
  • Various podcasting
  • Recording of calls used for radio interviews
  • have a whitelist of countrycodes/areacodes as there are lots I don't want to terminate
  • It would also be supercool if after someone keyed in a telephone number instead of repeating it, it said something like "calling a number in Bolivia" or "calling Los Angeles". Like a huge fuckn table of codes it could look up. (though this could be in a database instead...) (done)
  • Set up multiple outgoing trunks, so different trunks can be used easily.
  • Announce to the caller which trunk is being used for an outgoing call so they can say "voxee trunks are good" and/or "voxee trunks are bad, but the junction one is good". Basically a way for the caller to know which trunk they are using so they can provide feedback.
  • Test voice recognition at 7,2100 (yes/no) and 7,2101 (numbers)

todo

  • Make it so if someone calls a toll free number and if there is a local number available to them, say something like "please use your local number at 1234-5678" or somesuch. People should use local, not toll free numbers whenever possible. For that matter, they should use softphones when possible.

blasterisk.pub

-----BEGIN PUBLIC KEY-----
MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDFsWgUPhUP7sIE+0hRlq7ZrBjT
wIKDsN3HR51jauZM1GjKFS+n2JicXxFbGUseW37F98T7fkb7Ux6D0M/V+VYY/w+C
qx2Tx33ZUeM91UMby6ma8/pXksJ3gpu1f3fsMPRIC60Cs/uWp37eYizzS+nP4jsl
M0N5L7t734wigjrmIQIDAQAB
-----END PUBLIC KEY-----


BLASTDEV

BLASTDEV is the experimental experimental server ;)

Currently there is no separate blastdev server, as BLASTERISK has been updated to the latest 1.4. In the future blastdev will run asterisk 1.6.

Links

Personal tools