restcomm / restcomm-connect Goto Github PK
View Code? Open in Web Editor NEWThe Open Source Cloud Communications Platform
Home Page: http://www.restcomm.com/
License: GNU Affero General Public License v3.0
The Open Source Cloud Communications Platform
Home Page: http://www.restcomm.com/
License: GNU Affero General Public License v3.0
Phone Number Provisioning Plugin for http://bandwidth.com/
Add Support for https://www.twilio.com/docs/client/twilio-js. Currently we provide WebRTComm as a WebRTC library but to simplify application portability, the support of the Twilio Client API is needed and can be layered on top of WebRTComm
If a registered sip client doesn't respond to OPTIONS requests , Restcomm should remove it
MRCP requests keep coming up from prospects who would like to use their existing TTS servers. It is also necessary for support for additional languages and custom tuning of TTS parameters.
https://bitbucket.org/telestax/telscale-restcomm/issue/51/mrcp-support
Provide Notification Service that all other Actor will send messages to create Notification that will manifest in the REST Notifications API and Admin GUI
Add support for nextnonce in Auth to avoid having to do challenge for all incoming requests
In the upcoming AMI we will integrate VI by default to simplify the end user experience.
If a customer registers DIDs and consequently kills the AMI, we need to make sure to release the DIDs from the VI portal.
As of now in VoiceInterpreter#FinishConferencing it reads "endConferenceOnExit" attribute. However FinishConferencing will only be called when someone left the call and "endConferenceOnExit" was true. So this state will never reach.
Add Support for https://www.twilio.com/docs/api/rest/short-codes
Restcomm does not offer a visual cue for users that an update is available. The Admin UI should offer such visual cue to users with the right level of access and allow them to execute a graceful update with none or minimal service interruption.
Wordpress offers two kinds of visual cues similar to iOS apps. Red badge icon next to the components that have updates. Also a more detailed contextual message on the page of the updated component and on dashboard page.
Centralized logging service that will accepts messages from Actors and will log according to the object type.
I tried to make simple voicemail app with only 4 modules.
DID: +15124541221
http://54.166.51.44:8080/restcomm-rvd/#/designer/voicemailToEmail
In first module user have to press 1 to leave a message. In second module, message is recorded and in the third one sent to email using ES. And there is no proceed to the last module which prompts the user to record new message or hang up.
When registering a new DID, the Admin UI should show the user a generic message:
"This number is now registered. Please note that it may take a few minutes before it becomes active."
Restcomm conference has the maxParticipants attribute. This allows you to set the maximum number of people who can join a conference.
This metric is not exposed so that Developers can check how many people are currently in the call.
https://www.twilio.com/docs/sip/sip-twiml
SIP and TwiML Interaction
SIP calls interact with TwiML in virtually the same way as inbound phone calls and Client. When Twilio receives an incoming INVITE to your Twilio SIP domain and authenticates it, it passes a 180 Ringing SIP response code to your SIP endpoint. Twilio then looks up the URLs associated with your SIP domain and makes an HTTP request to the VoiceUrl.
When requesting your TwiML, Twilio will pass several parameters to your application from the original SIP call:
Parameter Name Description
To The URI of the INVITE
From “From” header passed in the INVITE
SipDomain The Twilio SIP Domain to which the INVITE was sent
SipUsername The username given when authenticating the request, if Credential List is the authentication method.
SipCallId The Call-Id of the incoming INVITE
SipSourceIp The IP Address the incoming INVITE came from.
SipHeader_ X- headers in the incoming INVITE are passed as SipHeader_ params, where is the header key. You can receive multiple of these.
Upon receiving a response with valid TwiML, Twilio begins executing the instructions contained within the TwiML. If the instructions are , , , , or , Twilio sends a 200 OK SIP response code to your endpoint and establishes the call.
If your application passes back a verb, the redirect document is requested and Twilio continues in the 180 Ringing state.
If your application sends back a , Twilio returns a 486 Busy SIP response code and the call setup is denied. If your application sends back a , Twilio returns a 603 Rejected SIP response code and the call setup is denied.
Passing SIP Headers to your TwiML application
In order to better integrate with remote SIP applications, Twilio's SIP connections can read headers in the initial INVITE and pass them to your application. Twilio will read any headers beginning with the X- prefix and pass them in the TwiML HTTP callback in the format SipHeader_X-headername=headervalue. This allows your application to make programmatic decisions about what to do with a call.
Receiving SIP from Twilio
Overview
With Twilio SIP, it’s simple connect to your SIP endpoints from a Twilio app. You can use TwiML or the REST API to initiate SIP sessions into your existing SIP gateways and IP PBXs. Take an inbound phone call and turn into a SIP call with TwiML. If you don’t have an existing phone call, use the REST API to start a new SIP call to your system.
How it works
To receive SIP from Twilio, use the noun of the verb to initiate a connection to your system. Twilio will send an INVITE to the URI you set in the noun and attempt to establish a SIP session. Use this to take any existing phone call in Twilio and route it to your SIP endpoint.
To initiate a SIP connection without having an existing call, you can use the REST APIto make SIP calls. This is just like making regular phone calls on Twilio, but instead of passing a phone number to dial, you just pass the URI to which we should send an INVITE.
Getting Started
To start receiving SIP to Twilio, you need to go through these steps:
Whitelist Twilio’s SIP and Media IPs on your SIP Endpoint
Twilio’s SIP IPs need to be whitelisted by you so that we can send SIP traffic back to your endpoint. You will also need to whitelist port 10000 to 20000 for RTP traffic so that the audio of the calls can reach your system.
2. Start receiving SIP from Twilio
Now that Twilio’s IPs are whitelisted in your system, your Twilio app can begin sending SIP traffic to your endpoints. If new to Twilio, it’s best to start out with noun of the verb for your first app.
SIP Headers
The following headers will always be added by Twilio to the outgoing initial INVITE request:
X-Twilio-CallSid: A unique identifier for this call, generated by Twilio. It is 34 characters long, and always starts with the letters CA.
X-Twilio-AccountSid: Your Twilio account SID. It is 34 characters long, and always starts with the letters AC.
X-Twilio-ApiVersion: The Twilio API version being used for this call session.
SIP X-Headers passed back from your SIP Endpoint
In order to better integrate with remote SIP applications, Twilio's SIP connections can read headers that are returned in the response messages. Twilio will read any headers beginning with the X- prefix and copy them to either the Dial action URL or the call screening URL, in the format DialSipHeader_X-headername=headervalue.
On a successful call setup (when a 200 OK SIP response is returned) any X-headers on the 200 OK message are posted to the call screening URL. Headers on the final SIP response message (any 4xx or 5xx message or the final BYE/200) are posted to the Dial action URL.
Conference endpoint once created is never cleaned and Actor remains in context for ever. This is only when participants leave one-by-one.
However of "endConferenceOnExit" is true, it does proper cleanup.
Conference endpoint should be cleaned if last participant leaves the call.
Auto-configure Restcomm AWS AMI to use SMTP for sending emails
When a critical update is available that fixes a Severity 1 problem (security vulnerability, database crash bug, etc.) the admin of a Restcomm instance should be notified via email/sms/call and urged to execute update.
When possible updates should be graceful and not cause any service interruption.
Configurable Call price unit
See issue RESTCOMM-177
When logging MGCP requests provide also the SIP Call-ID of the call so reading the log will be easier.
Allow for a WebRTC user to connect to the Media Server and not only P2P Media as is supported right now
Implement Forgot Password in Admin UI
UssdIntepreter should pass to the Http server any custom (X-) headers.
Similar to what the VoiceInterpreter is doing for the Sip Calls
Refactor AvailablePhoneNumbers and IncomingPhoneNumbers API to plug other providers
Implement https://www.twilio.com/docs/api/rest/queue and https://www.twilio.com/docs/api/rest/member in RestComm REST API
New upgraded RVD version is really cool but I just discovered a bug.
When you are using External Service and try to 'Add an assignment' and click on that button nothing happens. It seems that the button is just not working.
Add Support for https://www.twilio.com/docs/api/rest/applications
Dial forking doesn't continue to the next RCML if none of the branches answers.
Also will not cancel the created branches.
In case that the Dial has an action url, Restcomm should proceed with the RCML provided by the action response.
For minor updates when possible, we should avoid the AWS manual update steps. Instead the AMI should automatically pull patches from telestax.com and update itself before booting on EC2 for the first time in a way transparent to the user.
Some DID providers are stronger with coverage in certain geographies, but do not have coverage in others.
For example VI does not offer DIDs in Hong Kong, China, Korea, Japan and other countries.
Restcomm should allow more than one DID provider to be plugged in a live instance.
VI offers reliable SMS delivery in the US, however it does not offer SMS delivery/termination to other markets. Restcomm should allow multiple outbound SMS providers with a list of delivery priority rules based on phone number prefix.
Add Support for https://www.twilio.com/docs/api/rest/conference
Modify Log4J configuration file to keep maximum 30 days of log files. Make it a configurable time span.
How to Implement Twilio-like App Monitor and Request Inspector?
https://www.twilio.com/help/faq/twilio-basics/how-can-i-debug-my-application
How to reproduce a problem:
-download TelScale-Restcomm-JBoss-AS7-7.1.4-SNAPSHOT and start it under Microsoft Windows and launch
-create a SIP account and connect with this account by SIP phone to a local Restcomm server
-call to a number "+1234". The connection is established but no announce sound comes
then I manually break a call from SIP phone
We need a way to identify users for survey, newsletter, password reset, automatic updates and support.
Add Support for https://www.twilio.com/docs/client/ios
We've had problems with TTS SaaS changing their API access rules.
Let's consider integrating a FOSS TTS to at least satisfy basic use of Restcomm without 3rd party deps.
http://mary.dfki.de/
I am trying to set a Status Callback URL. I am going to Dashboard -> Numbers Choosing the number for my application and then place Status Callback URL. Then I saved the project. RVD said it is saved. But when I went back to numbers and choose the one I am using with my app, there is no status callback URL set.
For trusted networks, authentication can be removed as it would be a perf overhead.
Also for applications such as customer support widget where visitors on website would want to talk to customer care agents anonymously, those users should register and make call or chat with agents without having them pre registered in RestComm
UCS2 encoding of SMS is not working between RestComm and TelScale SMSC.
IncomingPhoneNumber fails to register SIP numbers like 55555
Add Support for https://www.twilio.com/docs/api/rest/call-feedback
Add Support for https://www.twilio.com/docs/client/android
Document registration of DID origination service provider
SMS plugin should be able to receive SMSs over HTTP.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.