diff --git a/callagent/Tests.st b/callagent/Tests.st index 570a3a3..945e9d3 100644 --- a/callagent/Tests.st +++ b/callagent/Tests.st @@ -368,6 +368,12 @@ PP.PPCompositeParserTest subclass: MGCPParserTest [ ^String streamContents: [:stream | stream nextPutAll: 'DLCX nat-0 1@mgw MGCP 1.0'; cr; nl] + ] + + MGCPParserTest class >> dlcxMessageReg [ + ^String streamContents: [:stream | + stream + nextPutAll: 'DLCX nat-9999999999 a@mgw MGCP 1.0'; cr; nl] ] @@ -384,6 +390,14 @@ PP.PPCompositeParserTest subclass: MGCPParserTest [ self assert: crcx asDatagram equals: self class crcxMessage. ] + testParseNatDLCX [ + | dlcx | + dlcx := self parse: self class dlcxMessageReg. + + self assert: dlcx class verb equals: 'DLCX'. + self assert: dlcx asDatagram equals: self class dlcxMessageReg. + ] + testParseDLCX [ | dlcx | dlcx := self parse: self class natDLCXMessage. diff --git a/grammar/MGCPGrammar.st b/grammar/MGCPGrammar.st index fb0afe1..dcde4e2 100644 --- a/grammar/MGCPGrammar.st +++ b/grammar/MGCPGrammar.st @@ -73,7 +73,7 @@ PP.PPCompositeParser subclass: MGCPGrammar [ "Add Osmocom extension that starts with 'nat-'" ^ ((#digit asParser) min: 1 max: 9) flatten / - ('nat-' asParser, (#digit asParser) min: 1 max: 9) flatten + ('nat-' asParser, ((#digit asParser) min: 1 max: 9) plus) flatten ] endpointName [