pespin has submitted this change. ( 
https://gerrit.osmocom.org/c/docker-playground/+/37494?usp=email )

Change subject: ttcn3-asterisk: extensions.conf: Reject calls if all SIP UAs 
busy in call
......................................................................

ttcn3-asterisk: extensions.conf: Reject calls if all SIP UAs busy in call

Before this patch, asterisk would ring on local SIP UAs already in a
call, which is not the expected behavior for this project.

Related: SYS#7003
Change-Id: Id9e3ead6e28a53793c6cceb6f23d5e6d987521d8
---
M ttcn3-asterisk-ims-ue-test/asterisk/extensions.conf
1 file changed, 38 insertions(+), 7 deletions(-)

Approvals:
  pespin: Looks good to me, approved
  Jenkins Builder: Verified
  jolly: Looks good to me, but someone else must approve
  laforge: Looks good to me, but someone else must approve




diff --git a/ttcn3-asterisk-ims-ue-test/asterisk/extensions.conf 
b/ttcn3-asterisk-ims-ue-test/asterisk/extensions.conf
index 5688153..fdfae23 100644
--- a/ttcn3-asterisk-ims-ue-test/asterisk/extensions.conf
+++ b/ttcn3-asterisk-ims-ue-test/asterisk/extensions.conf
@@ -1,7 +1,6 @@
-[get-valid-endpoints]
-
+[get-valid-endpoints-500]
+; usage: no arguments, returns DIALGROUP object of registered and valid 050x 
endpoints
 exten => s,1,Verbose(5, Entering get-valid-endpoints gosub.)
-    ; usage: no arguments, returns DIALGROUP object of registered and valid 
050x endpoints
  same => n,Set(ENDPOINT_1_STATE=${DEVICE_STATE(PJSIP/0501)})
  same => n,Set(ENDPOINT_2_STATE=${DEVICE_STATE(PJSIP/0502)})
  same => n,Set(ENDPOINT_3_STATE=${DEVICE_STATE(PJSIP/0503)})
@@ -17,10 +16,11 @@
  same => n,ExecIf($[${ENDPOINT_4_EXPR} = 
0]?Set(DIALGROUP(CALL_VALID_LIST,add)=PJSIP/0504))
  same => n,Return(${DIALGROUP(CALL_VALID_LIST)})

+
 [from-phone]

 exten => 0500,1,Verbose(5,${EXTEN}: Call all registered pjsips from 
${CALLERID(num)})
- same => n,Gosub(get-valid-endpoints,s,1())
+ same => n,Gosub(get-valid-endpoints-500,s,1())
  same => n,Set(DIALGROUP(CALL_EVERYONE_LIST)=${GOSUB_RETVAL})
  same => n,Set(DIALGROUP(CALL_EVERYONE_LIST,del)=PJSIP/${CALLERID(num)})  ; 
remove the caller
  same => n,Dial(${DIALGROUP(CALL_EVERYONE_LIST)})
@@ -39,15 +39,33 @@
  same => n,Set(DIALSTATUS=CHANUNAVAIL)


+[get-valid-endpoints-from-volte-ims]
+; usage: no arguments, returns DIALGROUP object of registered and valid 050x 
endpoints
+exten => s,1,Verbose(5, Entering get-valid-endpoints-500 gosub.)
+ same => n,Set(ENDPOINT_1_STATE=${DEVICE_STATE(PJSIP/0501)})
+ same => n,Set(ENDPOINT_2_STATE=${DEVICE_STATE(PJSIP/0502)})
+ same => n,Set(ENDPOINT_3_STATE=${DEVICE_STATE(PJSIP/0503)})
+ same => n,Set(ENDPOINT_4_STATE=${DEVICE_STATE(PJSIP/0504)})
+ same => n,Set(ENDPOINT_1_EXPR=$[$["${ENDPOINT_1_STATE}" = "NOT_INUSE"] | 
$["${ENDPOINT_1_STATE}" = "ONHOLD"]])
+ same => n,Set(ENDPOINT_2_EXPR=$[$["${ENDPOINT_2_STATE}" = "NOT_INUSE"] | 
$["${ENDPOINT_2_STATE}" = "ONHOLD"]])
+ same => n,Set(ENDPOINT_3_EXPR=$[$["${ENDPOINT_3_STATE}" = "NOT_INUSE"] | 
$["${ENDPOINT_3_STATE}" = "ONHOLD"]])
+ same => n,Set(ENDPOINT_4_EXPR=$[$["${ENDPOINT_4_STATE}" = "NOT_INUSE"] | 
$["${ENDPOINT_4_STATE}" = "ONHOLD"]])
+ same => n,Set(DIALGROUP(CALL_VALID_LIST)=) ; clear list
+ same => n,ExecIf($[${ENDPOINT_1_EXPR} != 
0]?Set(DIALGROUP(CALL_VALID_LIST,add)=PJSIP/0501))
+ same => n,ExecIf($[${ENDPOINT_2_EXPR} != 
0]?Set(DIALGROUP(CALL_VALID_LIST,add)=PJSIP/0502))
+ same => n,ExecIf($[${ENDPOINT_3_EXPR} != 
0]?Set(DIALGROUP(CALL_VALID_LIST,add)=PJSIP/0503))
+ same => n,ExecIf($[${ENDPOINT_4_EXPR} != 
0]?Set(DIALGROUP(CALL_VALID_LIST,add)=PJSIP/0504))
+ same => n,Return(${DIALGROUP(CALL_VALID_LIST)})
+
+
 [volte_ims]

 exten => _.!,1,Verbose(5,${EXTEN}: Call internal number from ${CALLERID(num)})
  same => n,Set(GROUP()=IMSgroup)
  same => n,GotoIf($[${GROUP_COUNT(IMSgroup)} > 1]?999)
- same => n,WaitForPrecondition(10,2000);
- same => n,Gosub(get-valid-endpoints,s,1())
+ same => n,Gosub(get-valid-endpoints-from-volte-ims,s,1())
  same => n,Set(DIALGROUP(CALL_EVERYONE_LIST)=${GOSUB_RETVAL})
- same => n,Set(DIALGROUP(CALL_EVERYONE_LIST,del)=PJSIP/${CALLERID(num)})  ; 
remove the caller
+ same => n,WaitForPrecondition(10,2000)
  same => n,Dial(${DIALGROUP(CALL_EVERYONE_LIST)})
  same => n,Hangup(16)
  same => 999,Verbose(1,${EXTEN}: VoLTE client already busy 
(${GROUP_COUNT(IMSgroup)}) rejecting call from IMS ${CALLERID(num)})

--
To view, visit https://gerrit.osmocom.org/c/docker-playground/+/37494?usp=email
To unsubscribe, or for help writing mail filters, visit 
https://gerrit.osmocom.org/settings

Gerrit-Project: docker-playground
Gerrit-Branch: master
Gerrit-Change-Id: Id9e3ead6e28a53793c6cceb6f23d5e6d987521d8
Gerrit-Change-Number: 37494
Gerrit-PatchSet: 2
Gerrit-Owner: pespin <[email protected]>
Gerrit-Reviewer: Hoernchen <[email protected]>
Gerrit-Reviewer: Jenkins Builder
Gerrit-Reviewer: jolly <[email protected]>
Gerrit-Reviewer: laforge <[email protected]>
Gerrit-Reviewer: pespin <[email protected]>
Gerrit-MessageType: merged

Reply via email to