Flashphoner - No Webrtc - Purely SIP

I have seen other conversations that seem to confirm this functionality but desired explicit confirmation prior to dedicating time and resources and building a Flashphoner server in AWS. Could someone please confirm the following is possible?

-I have a Cisco IP PBX with heavy video use.
-Desire an external solution in which I can do regular testing of video to confirm current expected quality of video and audio.
-In testing the flow would be - Cisco video endpoint within an enterprise > purely SIP signaling > SIP video call out thru internet pipe > arrive at Flashphoner server (again no webrtc or anything other than purely SIP in play) > video call connects to construct within Flashphoner > media is streamed thru Flashphoner > I then measure the video/audio quality of the connection > repeat across many Cisco endpoints several times per day

Is this purely SIP implementation and use supported by Flashphoner that would allow testing of both audio/video
Would I be able to host a video file on Flashphoner and everything needed would exist on Flashphoner? Or to provide the video stream would a RTMP/other connection to Wowza or something similiar be necessary?
Would I be able to test all types of video quality/resolutions? In other words could I test high quality video streams (1080p possibly in H264) and also do a test of 780p and lower across several test calls for testing of all quality types?
 

Max

Administrator
Staff member
Good day.
WCS supports all popular streaming video technologies and Websocket streaming.
In your case, WCS is suitable for use. If you have questions regarding implementation and capabilities, please write to us.
In testing the flow would be - Cisco video endpoint within an enterprise > purely SIP signaling > SIP video call out thru internet pipe > arrive at Flashphoner server (again no webrtc or anything other than purely SIP in play) > video call connects to construct within Flashphoner > media is streamed thru Flashphoner > I then measure the video/audio quality of the connection > repeat across many Cisco endpoints several times per day
Streaming video and SIP integration functions are widely customizable in WCS. Examples are available in the documentation.
Would I be able to host a video file on Flashphoner and everything needed would exist on Flashphoner?
Yes, WCS offers possibility to capture a media stream from file located on the local disk of the server or stream can be captured from file placed to AWS S3 storage. Example in the documentation.
Would I be able to test all types of video quality/resolutions?
Yes it is possible. You can see the documentation.
 
Max - thanks so much for the timely and through response.

Would there happen to be any WCS demo instances available for testing and demonstrating the SIP based video call from a Cisco video endpoint? In other words - to demonstrate the capability for myself and colleagues prior to launching an AWS WCS instance and purchasing a WCS license - would there happen to be a SIP URI demo destination that we could use in your own WCS lab instances? Again simply a means I could use to easily demonstrate the video feed capability to other stakeholders.

If there is not a demo SIP URI I could use for demonstration - assume the best path would be to stand up a WCS instance in AWS and pay for one month ($75/month) license and build out the simple initial use case. Agreed?

Finally - I notice in the WCS pricing info a statement both under monthly and standalone server licensing of - "The license does not cover SIP functions." Is this impactful to the SIP connections I am interested in? Or does "SIP functions" refer to something otherwise?
 

Max

Administrator
Staff member
Hello
Or does "SIP functions" refer to something otherwise?
SIP features are not available under Simple License. This means you can't connect WCS to Cisco using Simple License ($75 monthly or $1995 perpetual).
Please request a quote for Enterprise License
Would there happen to be any WCS demo instances available for testing and demonstrating the SIP based video call from a Cisco video endpoint?
You can get Trial license https://flashphoner.com/download
And activate the trial license on Amazon Instance, i.e.
You can also try our live demo server https://demo.flashphoner.com SIP as RTMP example
In other words - to demonstrate the capability for myself and colleagues prior to launching an AWS WCS instance and purchasing a WCS license
Each particular SIP endpoint including Cisco has some integration issues.
So to setup demo, we would need the following from you:
1. Submit quote request
2. Provide SIP endpoint credentials for a call.
For example, if you provide:
- callee SIP URI
- login password (if authentication or SIP registration required)
We should be able to make a call either from a softphone or from WCS server.
Your SIP endpoint should pick up the call and send audio + video automatically (perhaps auto-reply function of Cisco server).
3. As a result, we will setup demo on a demo instance and you will be able to demonstrate this demo to other stakeholders.
video call connects to construct within Flashphoner > media is streamed thru Flashphoner > I then measure the video/audio quality of the connection
Regarding quality check, you can
1. Map SIP audio+video call to a stream on WCS, i.e. stream1.
2. Connect and play this stream using: WebRTC, HLS, RTMP, MSE (HLS via websockets)
3. Record this stream on WCS server to mp4 file.
4. Gather metrics from this stream (bitrate, withd, height, NACK, PLI, etc) using WCS OAM - monitoring server
5. If Cisco SIP endpoint allows requesting resolution and provides SDP or SIP headers affecting resolution, you can pass such headers through WCS to Cisco to request desired resolution or bitrate.

So yes, you can estimate quality visually and you can track stream metrics on the back-end.
 
Max -

Thanks so much again for an excellent, through, and detailed response.

Regarding the demonstration desired to other stakeholders - I believe there may be a slight misunderstanding in what I would like to accomplish.

In the following response the request items include credentials for the call and that the Cisco SIP endpoint should pick up the call. But my interest is communication in the opposite direction and from the Cisco endpoints to the WCS server. Thus I do not believe any authentication should be necessary. Let me clarify thru an example that might be useful. In initial development efforts we have used SIP URIs such as a BlueJeans parrot video testing site at the following address - 111@199.48.152.152. Using this URI - or other readily available URIs - we can conduct video/audio testing initiated from Cisco endpoints such as the following flow. Python script send API request to Cisco endpoint > the API requests tells the Cisco video endpoint to dial over the internet the BlueJeans URI > the BlueJeans parrot testing site auto answers > we now have a connect video call to BlueJeans in 1080p > while that test call is active we send another API request to the Cisco endpoint requesting current/live call stats (ingress/egress video and audio channels are measured for jitter, latency, loss) > we use this mechanism across dozens of Cisco endpoints in the enterprise environment to validate current status of video quality in the organization. All of this works great and facilitates need but we desire a solution in which calls are not made to a generic BlueJeans testing site - which displays an image of a parrot in video conference rooms while testing is live - but instead configure a destination in which we control the video file/source displayed and have full control over the video quality (I.e. ability to test 780p and 1080p).

Thus as you can see in the example current Cisco endpoint to BlueJeans testing flow - no authentication from the Cisco endpoints should be necessary as they are simply placing a video call to a remote endpoint. Just as no authentication would be necessary for our enterprise to place a video call to another enterprise/company. Unless you are requesting the authentication and test from WCS to Cisco endpoint as it is necessary to initialize the service - understanding that there after the flow would be from Cisco endpoint to WCS and not vice versa.

Does all of this make sense? Please let me know if there is anything further I could provide to clarify.

Each particular SIP endpoint including Cisco has some integration issues.
So to setup demo, we would need the following from you:
1. Submit quote request
2. Provide SIP endpoint credentials for a call.
For example, if you provide:
- callee SIP URI
- login password (if authentication or SIP registration required)
We should be able to make a call either from a softphone or from WCS server.
Your SIP endpoint should pick up the call and send audio + video automatically (perhaps auto-reply function of Cisco server).
3. As a result, we will setup demo on a demo instance and you will be able to demonstrate this demo to other stakeholders.
 

Max

Administrator
Staff member
It is quite clear. Thanks.

Currently we have two options:
1. Outbound call WCS > Cisco using REST API with SIP credentials
2. Incoming call Cisco > WCS without credentials
https://docs.flashphoner.com/display/WCS52EN/Republishing+incoming+SIP+call+to+a+stream

The lack of option (2) is we can't test this from our end unless you provide Cisco API to make the call.
So if you provide the Cisco API, we will be able to setup scheme according option (2).
The setup and integration may require few iterations, so we would need access to the staging Cisco API to make calls.

while that test call is active we send another API request to the Cisco endpoint requesting current/live call stats (ingress/egress video and audio channels are measured for jitter, latency, loss)
Just wondering how Cisco gathers this statistics.
If it is done based on sent UDP packets, the statistics is not accurate because UDP packets may be lost and far end will not receive the same video packets as calculated by statistics.
If it is done based on RTCP receiver reports, it should be accurate because statistics is built on actual receiver's reports. So your monitoring endpoint should send valid RTCP reports and Cisco should build statistics based on these reports. Otherwise you would need to fetch statistics from remote endpoint, not from Cisco.
 
Max -

If I understand correctly - option 2 as stated as the following would suffice - "Incoming call Cisco > WCS without credentials."

The desire would be that we would initiate the call from the Cisco endpoint via an API request and also would measure the stats on the Cisco endpoint via API request. Thus the WCS server would not be responsible for any of this functionality. We simply need WCS to accept the SIP URI call inbound and be able to host custom video content/files on the WCS server.

If this is possible and we do not need WCS to initiate any communication - what would be the simplest path for the proof of concept? In other words - we really just need a SIP URI on the WCS side that will accept and connect a call. To reiterate the desired path - if possible - API request is made to the Cisco endpoint from our python script (nothing from WCS needed) > the Cisco endpoint would initiate the call via SIP URI (nothing from WCS needed) > call routed out to the internet > call reaches a WCS server (most likely in AWS or initially at a test location otherwise) > WCS server accepts the SIP URI call inbound and plays video (only piece of the flow WCS is really involved) > while the call is live we would sample audio/video channels via our python script via an API request to the Cisco endpoint (nothing from WCS needed other than keeping the video call up which was already accomplished in prior steps) > python script would disconnect the call via an API request to the Cisco endpoint (nothing from WCS needed). Thus as clarified in this path - the only functionality desired on the WCS server is to accept the inbound SIP URI call - no API functionality is necessary on the WCS side unless it is needed by WCS for some reason - and ability of WCS to host custom video files (although this is not even necessary during prototype and a stock file would be sufficient if easier).

Thanks
Scott
 

Max

Administrator
Staff member
Please correct if I'm wrong.
1. Cisco places a call to WCS.
2. WCS does auto-reply using hosted mp4 file as audio+video source.
3. Cisco is gathering statistics from the received stream (streamed mp4 file).

This is what works out of the box:
1. Receiving of incoming call by WCS and auto-reply with generated black video and silent audio screen.
https://docs.flashphoner.com/display/WCS52EN/Republishing+incoming+SIP+call+to+a+stream
2. Injecting mp4 to SIP call using REST API
https://docs.flashphoner.com/pages/...ng/call/inject_stream-Injectingstreamfromfile
3. REST Hooks on established call to launch mp4 Inject.

To setup such the demo we would need to prepare a set of management scripts on WCS end.
And yes we would need Cisco API access to start such a test. In production it would just receive calls on SIP URI, but for testing and integration we still need access to the Cisco API to perform test calls to WCS and to be sure the demo case works as expected before sharing the demo.
 
Hello Max -

This is all very good and appears WCS can provide exactly the solution we desire. It can begin with a simple example and simple MP4 files but over time it would be intriguing to also embed Wowsza streams and other sources for interesting content.

The only challenge - which I’m sure we can navigate in some way thru discussion - is the need for API access during initial prototype build. Certainly no issue in giving your team a sample Cisco endpoint API access. The issue is that none of these video endpoints are publicly accessible as they sit on an enterprise network, behind a firewall, and the only means to access directly would be thru a VPN client connection. Do you need access to the specific endpoint of ours - we have dozens of video endpoints in the environment - or just a generic endpoint that allow you to explore the Cisco video API? If it just a generic endpoint that if needed - I could set you up with a Cisco DCloud instance - which are lab endpoints available to partners and would be publicly accessible. Or any other ideas that might work well?

Also to be clear - the API would only be for a Cisco video endpoint. No central call control server would be necessary. To initiate a call to WCS we can do this with an API call directly to the endpoints and tell the endpoints to dial WCS without involving a central call control server.

Thanks
Scott
 

Max

Administrator
Staff member
Hello
Do you need access to the specific endpoint of ours - we have dozens of video endpoints in the environment - or just a generic endpoint that allow you to explore the Cisco video API? If it just a generic endpoint that if needed - I could set you up with a Cisco DCloud instance - which are lab endpoints available to partners and would be publicly accessible. Or any other ideas that might work well?
Generic endpoint should be enough. It should be configured exactly as production endpoint otherwise you may encounter issues during migration to production Cisco endpoint.
For example if your production endpoint is configured with SIP/TCP and codecs H.264+Opus, the generic endpoint must have the same configuration to ensure seamless migration to production. Production endpoint would be ideal of course.
 
Max -

I certainly want to make this as painless as possible for you and do not want you having to spend much time getting access to what you need. So please let me know at any stage what I can do to make this as effortless as possible.

Cisco has a video codec devnet site at the following location:

https://developer.cisco.com/learning/lab/collab-xapi-intro/step/1

I am not sure if you have a Cisco account that would allow you to use this directly. If not - please email me (scarruthers239@gmail.com) and I will send you the auth info for a devnet session I have reserved for a full week. This would give your team a week of access to a Cisco roomkit video codec to code and send API request against. This would be identical to the hardware resources in my own organization. Access to these devnet resources would be via a Cisco AnyConnect VPN client connect and then SSH/direct access to the devices. This would be the same path as if I were to give you VPN connection to my organization to reach production devices but of course I would have to go thru many hoops to obtain authorization for that path.

Once we get you to the point that you have connectivity - I can provide detail on how best to code against these APIs, share sample python scripts, etc. And please let me know if there is anything else you might suggest to make this easiest on yourself.

Thanks
Scott
 

Max

Administrator
Staff member
Hello
We do not have Cisco account.
To proceed please
1. Request a quote for SIP enterprise license at sales@flashphoner.com from your corporate email.
2. Provide Cisco account and step-by-step instructions how to make a call using Cisco API.
Then we will be able to arrange a demo server and test it with your Cisco endpoint / account.
 
Top