Astricon 2009
Presenter: Jeronimo Romero
Date: 10/14/2009
3/10/09Privileged and Confidential Page 2
Asterisk in the Trading Room Floor
3/10/09Privileged and Confidential Page 3
Question: What Do Traders Want?
3/10/09Privileged and Confidential Page 4
Speed
Efficiency
Presence
SLA/BLA/Barging
Accounting/Logging/Recording
3/10/09Privileged and Confidential Page 5
Roles of Asterisk in the Trading Room Floor Call Control Policy Control Call Recording SIP Registrar PSTN/Media Gateway (T1/PRI/PLAR)
3/10/09Privileged and Confidential Page 6
Basic Asterisk Topology Overview
Call Controller 1 Call Controller 2
MediaGW 1 MediaGW 2
Asterisk Real Time
PRI Group1
PRI Group2
3/10/09Privileged and Confidential Page 7
What does a Turret Do? up to 27 voice channels, with 24 of those being monitored
speaker channels 6000 speed-dials Group Intercom Provision for all MRD and ARD private wires Full duplex-conferencing Advanced speed-dial management system An optional, IP Trade voice recorder, with playback to the
turret Connectors for many other voice recorders Video to the desktop Many other applets designed to improve Trader efficiency
3/10/09Privileged and Confidential Page 8
Basic Turret Topology
Call Controller 1
Call Controller 2
PLAR Gateway
MediaGW 1 MediaGW 2
PRI Group1
TPO Media ServerSIP RE-INVITE
AFTER SESSION ESTABLISHMENT
TSS Provisioning Server
IPC
Paetec
PSTN
3/10/09Privileged and Confidential Page 9
Typical Turret Integrations
TV streaming to the turret Presence and instant messaging integration Integration to Outlook Advanced recording integration to the CLI and
Trade ID, enabling enhanced compliance operation
High Definition video conferencing
3/10/09Privileged and Confidential Page 10
Why Turrets are great!!!
Turrets come with own SLA/BLA server (TPO) and conference bridge.
Asterisk support for common lamping is ok, but SLA is not great
Turrets support speaker trading – hands free on multiple simultaneous channels
Multiple Handsets with Push to Talk Functionality
3/10/09Privileged and Confidential Page 11
Turrets are not for everyone
Not every floor needs turrets Many traders can do without them
3/10/09Privileged and Confidential Page 12
Turrets are not for everyone Common Needs:
SLA/BLAOne-Touch BargePrivacy On/OffSLA/BLA to Private Line Common Lamping with call stateDirected Call PickupHands Free Hold
3/10/09Privileged and Confidential Page 13
Station Example: Aastra 57i
Aastra 57i with and without modular sidecar
3/10/09Privileged and Confidential Page 14
Why Aastra?
Multi Cast Paging Support Well documented and Extensive XML API 802.1x support Superb configurability Good BLF support Excellent Soft Key Features
3/10/09Privileged and Confidential Page 15
Putting it all together
Basic Phone Soft Keys:
Barge
Privacy
Page All
Page Group + (ring group)
Intercom + (extension)
Orbit 1-5 (onhold devstate on side car)
Bridge Lines (single user ringing devstate on side car)
3/10/09Privileged and Confidential Page 16
Putting it all together
Usage Example:
Inbound Ring Group into Bridged Line with contextual device state
3/10/09Privileged and Confidential Page 17
Putting it all together
Call1
app_meetmereserve
Ring Group DID Context
BLA1
BLA2
Call2 Call3
BLA3
3/10/09Privileged and Confidential Page 18
Putting it all together[did-2701]
exten => s,1,Wait(2)exten => s,n,Answer()exten => s,n,Set(CALLFILENAME=${CALLERID(num)}:${TIMESTAMP})exten => s,n,Monitor(gsm,/var/spool/asterisk/monitor/${CALLFILENAME},m)exten => s,n,MeetmeReserve(,E)exten => s,n,GotoIf($["${MEETMERESERVE_STATUS}" = SUCCESS"]?success:failure) exten => s,n(failure),Hangup()
3/10/09Privileged and Confidential Page 19
Putting it all togetherexten => s,n(success),Noop exten => s,n,NoOp(${CALLERID(name)})exten => s,n,Set(_CONFERENCE_NUMBER=${MEETMERESERVE_CONF})exten => s,n,Set(NEWCID="${MEETMERESERVE_CONF} ${CALLERID(name)}")exten => s,n,GotoIF($["${CALLERID(number)}" = ""]?noid) exten => s,n,Set(CALLERID(all)=${NEWCID}<${CALLERID(num)}>)exten => s,n,NoOp(${CALLERID(name)})exten => s,n,NoOp(${CALLERID(num)})exten => s,n,NoOp(${CALLERID(all)})exten => s,n,Dial(${MAINRINGGROUP},,G(rg^800^1))
exten => s,n(noid),SetCallerPres(allowed)exten => s,n,Set(CALLERID(name)="${MEETMERESERVE_CONF} Private Caller") exten => s,n,Set(CALLERID(number)="Private")exten => s,n,NoOp(your Callerid name value is ${CALLERID(name)}) exten => s,n,NoOp(caller id all is ${CALLERID(all)})exten => s,n,Dial(${MAINRINGGROUP},,G(rg^800^1))
3/10/09Privileged and Confidential Page 20
Putting it all together[rg]
exten => 800,1,Meetme(${CONFERENCE_NUMBER},q1M) ;####CALLER
exten => 800,n,Meetme(${CONFERENCE_NUMBER},saq1AM) ;####CALLEE
3/10/09Privileged and Confidential Page 21
Putting it all together SUMMARY
• When call comes into trader ring group1)All traders know what line the call is coming in2)All traders can see line + callerID concatenated in LCD3)Trader who picks up call can hang up phone without hanging up
on customer or broker since “x” option is used in Meetme(). Therefore, no hold button is necessary.
4)Whenever a single user is in meetme, the bridge will blink in “ringing state” reminding the traders that someone is on hold. “M” option enables music on hold in single participant mode.
5)As soon as traders “picks up” line. Dev state will change to “inuse” and blf key will change from fast blinking to solid.
3/10/09Privileged and Confidential Page 22
Putting it all together
Usage Example:
Going from Bridged Line Mode into Privacy Mode
XML Soft Key On Phone:
http://<web_server>/conference_rescue.html?$$SIPUSERNAME$$
3/10/09Privileged and Confidential Page 23
Putting it all togetherUsage Example:
Call Barge with XML Barge Notification
exten =>s,1,NoOp(Barge feature)exten => s,n,Set(CALLER=${CALLERID(num)})exten => s,n,System(/etc/asterisk/scripts/barge.php ${MACRO_EXTEN:2} ${CALLER} public)exten => s,n,NoOp(VAR: ${bargmm})exten => s,n,Goto(${bargmm},1)exten => s,n,Hangup()
exten => _1X.,1,MeetMe(${EXTEN:1},qdA,683386) ;Original call membersexten => _1X.,n,Hangupexten => _2X.,1,MeetMe(${EXTEN:1},aqx,683386) ;Extension who is bargingexten => _2X.,n,Hangup
3/10/09Privileged and Confidential Page 24
Putting it all togetherSummary This assumes a simple call scenario between two parties,
then a third party that wants to barge, so he will press the xml key (instead he could dial a dial-plan feature code) with to one of the other two parties and following things will happen:
The two parties will be transfer to a conference room. A message is displayed in the phone screen notifying who is
the extension that is barging, only for phones Aastra 55i and 57i.
The aastra phone menu is modified and a new screen is displayed offering the possibility of locking the room disabling the possibility of barging to any other extension.
3/10/09Privileged and Confidential Page 25
Conclusion
It is possible to build very impressive and featureful telephony solutions for the trading room floor with the right partners and goals in mind. Special thanks to IP Trade Networks and Aastra Telecom for all of their assistance.
3/10/09Privileged and Confidential Page 26
Who am I?
Jeronimo Romero
EUS Networks
212-624-5943 ext 1001