Use the Smalltalk SIP implementation to create a call and once the call has been established start the replay using the commoncode. No patching of RTP occurs yet.neels/jolly/new_handover
parent
602559fd9f
commit
f42e908cea
@ -0,0 +1,87 @@ |
||||
""" |
||||
Create a SIP connection and then stream... |
||||
""" |
||||
|
||||
PackageLoader |
||||
fileInPackage: #OsmoSIP. |
||||
|
||||
"Load for the replay code" |
||||
FileStream fileIn: 'rtp_replay_shared.st'. |
||||
|
||||
|
||||
Osmo.SIPCall subclass: StreamCall [ |
||||
| sem stream | |
||||
|
||||
createCall: aSDP [ |
||||
| sdp | |
||||
stream := RTPReplay on: 'rtp_ssrc6976010.240.240.1_to_10.240.240.50.state'. |
||||
sdp := aSDP % {stream localPort}. |
||||
^ super createCall: sdp. |
||||
] |
||||
|
||||
sem: aSemaphore [ |
||||
sem := aSemaphore |
||||
] |
||||
|
||||
sessionNew [ |
||||
| host port | |
||||
Transcript nextPutAll: 'The call has started'; nl. |
||||
Transcript nextPutAll: sdp_result; nl. |
||||
|
||||
host := SDPUtils findHost: sdp_result. |
||||
port := SDPUtils findPort: sdp_result. |
||||
|
||||
[ |
||||
stream streamAudio: host port: port. |
||||
Transcript nextPutAll: 'Streaming has finished.'; nl. |
||||
] fork. |
||||
] |
||||
|
||||
sessionFailed [ |
||||
sem signal |
||||
] |
||||
|
||||
sessionEnd [ |
||||
sem signal |
||||
] |
||||
] |
||||
|
||||
Eval [ |
||||
| transport agent call sem sdp_fr sdp_amr | |
||||
|
||||
|
||||
sdp_fr := (WriteStream on: String new) |
||||
nextPutAll: 'v=0'; cr; nl; |
||||
nextPutAll: 'o=twinkle 1739517580 1043400482 IN IP4 127.0.0.1'; cr; nl; |
||||
nextPutAll: 's=-'; cr; nl; |
||||
nextPutAll: 'c=IN IP4 127.0.0.1'; cr; nl; |
||||
nextPutAll: 't=0 0'; cr; nl; |
||||
nextPutAll: 'm=audio %1 RTP/AVP 0 101'; cr; nl; |
||||
nextPutAll: 'a=rtpmap:0 PCMU/8000'; cr; nl; |
||||
nextPutAll: 'a=rtpmap:101 telephone-event/8000'; cr; nl; |
||||
nextPutAll: 'a=fmtp:101 0-15'; cr; nl; |
||||
nextPutAll: 'a=ptime:20'; cr; nl; |
||||
contents. |
||||
|
||||
sem := Semaphore new. |
||||
transport := Osmo.SIPUdpTransport |
||||
startOn: '0.0.0.0' port: 5066. |
||||
agent := Osmo.SIPUserAgent createOn: transport. |
||||
transport start. |
||||
|
||||
call := (StreamCall |
||||
fromUser: 'sip:1000@sip.zecke.osmocom.org' |
||||
host: '127.0.0.1' |
||||
port: 5060 |
||||
to: 'sip:123456@127.0.0.1' |
||||
on: agent) |
||||
sem: sem; yourself. |
||||
|
||||
call createCall: sdp_fr. |
||||
|
||||
|
||||
"Wait for the stream to have ended" |
||||
sem wait. |
||||
|
||||
(Delay forSeconds: 4) wait. |
||||
] |
Loading…
Reference in new issue