callagent: Fix the SIPRequests>>#addDefaults: with the OrderedCollection
This commit is contained in:
parent
dac5de9a28
commit
2a7a1bb3cb
|
@ -76,6 +76,14 @@ Object subclass: SIPRequest [
|
|||
self parameters add: (aPar -> aValue).
|
||||
]
|
||||
|
||||
parameter: aPar ifAbsent: aBlock [
|
||||
<category: 'accessing'>
|
||||
self parameters do: [:each |
|
||||
each key = aPar ifTrue: [^ each value]].
|
||||
|
||||
aBlock value.
|
||||
]
|
||||
|
||||
asDatagram [
|
||||
| out |
|
||||
|
||||
|
@ -108,10 +116,10 @@ Object subclass: SIPRequest [
|
|||
]
|
||||
|
||||
addDefaults: out [
|
||||
self parameters at: 'To' ifAbsent: [
|
||||
self parameter: 'To' ifAbsent: [
|
||||
out
|
||||
nextPutAll: 'To: %1' % {dialog generateTo}; cr;nl].
|
||||
self parameters at: 'From' ifAbsent: [
|
||||
self parameter: 'From' ifAbsent: [
|
||||
out
|
||||
nextPutAll: 'From: %1' % {dialog generateFrom}; cr;nl].
|
||||
]
|
||||
|
@ -132,7 +140,7 @@ SIPRequest subclass: SIPInviteRequest [
|
|||
addDefaults: out [
|
||||
super addDefaults: out.
|
||||
|
||||
self parameters at: 'Contact' ifAbsent: [
|
||||
self parameter: 'Contact' ifAbsent: [
|
||||
out nextPutAll: 'Contact: <%1>' % {dialog from};
|
||||
cr; nl.
|
||||
].
|
||||
|
|
|
@ -0,0 +1,38 @@
|
|||
"
|
||||
(C) 2011 by Holger Hans Peter Freyther
|
||||
All Rights Reserved
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU Affero General Public License as
|
||||
published by the Free Software Foundation, either version 3 of the
|
||||
License, or (at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU Affero General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Affero General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
"
|
||||
|
||||
TestCase subclass: SIPRequestTest [
|
||||
testINVITE [
|
||||
| dialog req out |
|
||||
|
||||
dialog := SIPDialog fromUser: 'sip:1000@on-foo.com' host: '192.168.0.106' port: 5060.
|
||||
dialog fromTag: 'MzQ4NjQ4MTg0Mjc0MzAzODU5NA__'.
|
||||
dialog to: 'sip:9198@192.168.0.106'.
|
||||
|
||||
req := SIPInviteRequest from: dialog.
|
||||
|
||||
out := (WriteStream on: String new)
|
||||
nextPutAll: 'INVITE sip:9198@192.168.0.106 SIP/2.0'; cr; nl;
|
||||
nextPutAll: 'To: <sip:9198@192.168.0.106>'; cr; nl;
|
||||
nextPutAll: 'From: <sip:1000@on-foo.com>;tag=MzQ4NjQ4MTg0Mjc0MzAzODU5NA__'; cr; nl;
|
||||
nextPutAll: 'Contact: <sip:1000@on-foo.com>'; cr; nl;
|
||||
cr; nl; contents.
|
||||
|
||||
self assert: req asDatagram = out.
|
||||
]
|
||||
]
|
|
@ -18,7 +18,9 @@
|
|||
<test>
|
||||
<sunit>Osmo.SIPGrammarTest</sunit>
|
||||
<sunit>Osmo.SIPParserTest</sunit>
|
||||
<sunit>Osmo.SIPRequestTest</sunit>
|
||||
<filein>grammar/SIPGrammarTest.st</filein>
|
||||
<filein>callagent/SIPParserTest.st</filein>
|
||||
<filein>callagent/Tests.st</filein>
|
||||
</test>
|
||||
</package>
|
||||
|
|
Reference in New Issue