이번 포스팅은 opensips.cfg 내부에서 사용하는 Local Flag에 대해 알아보려고 합니다.
아래 2가지 포스팅과 유사한 점과 차이점이 있습니다.
아래 두 가지 포스팅을 참고하시면 좋을 것 같습니다.
1. Global Flag
OpenSIPS - Global Flag (gflags Module)
OpenSIPS - Global Flag (gflags Module)
이번 포스팅은 OpenSIPS에 Global 한 Flag를 제어할 수 있는 gflags Module에 대한 내용입니다. 이 곳에 gflags를 검색하셔서 들어오신 거라면 이미 VoIP와 OpenSIPS에 대한 전반적인 내용은 알고 계실 거라고 생..
dragonchan.tistory.com
2. Global Value
OpenSIPS - cfgutils Module (shvget, shvset) opensips.cfg 에서 변수 세팅
OpenSIPS - cfgutils Module (shvget, shvset) opensips.cfg 에서 변수 세팅
이번 포스팅은 OpenSIPS의 Global Flag(OpenSIPS - Global Flag (gflags Module))에 이어서 cfgutils Module입니다. 둘 간 약간은 유사하다고 볼 수 있겠네요. Global Flag는 서비스에서 무언가 분기 처리를 하기..
dragonchan.tistory.com
먼저 이번 주제인 Local Flag 는 기존 포스팅인 Global Flag 와의 공통점은 Flag라는 점이고, 차이점은 Local 이냐 Global 이냐입니다.
기존의 Flag는 Global 하게 Flag 를 세팅하고, module interface 에서 외부에서 서비스 중단없이 Flag 를 세팅했다면, Local Flag 는 opensips.cfg 스크립트 내부에서 필요한 분기 처리를 간단하게 하기 위한 Flag라고 보시면 될 것 같습니다.
제가 운영하는 VoIP 서비스는 OpenSIPS 2.4를 포팅하였으므로, 2.4 문서 기준으로 설명드리겠습니다.
https://www.opensips.org/Documentation/Script-Flags-2-4
openSIPS | Documentation / Script Flags - 2.4
Documentation -> Manuals -> Manual 2.4 -> Script Flags Pages for other versions: devel 3.0 2.4 Older versions: 2.3 2.2 2.1 1.11 1.10 1.9 1.8 1.7 1.6 1.5 1.4 1. Types of flags message flags (or transaction flags) these flags are transaction persistent. The
www.opensips.org
1. 분기에 따른 Flag SET
- 분기문에 따라 Flag 값을 다음과 같이 세팅합니다.
- setflag(flag_name);

2. 세팅한 Flag에 따른 분기 처리 구현
- 위에서 세팅한 Flag 이름으로 새로운 분기를 구현할 수 있습니다
- isflagset(flag_name)

3. 기존 Flag RESET & 새로운 Flag SET
- 새로운 Flag를 SET 하기 위해선 반드시 기존에 세팅하였던 Flag 를 RESET 해주어야 합니다. (RESET 해주지 않았을 경우에는 새로운 Flag로 Overwrite 되지 않습니다.
- resetflag(flag_name);
- setflag(new_flag_name);

4. 새로운 Flag에 따른 분기 처리 구현
- 2번과 동일합니다.
- 새로이 세팅한 Flag로 분기 처리를 구현할 수 있습니다.

정리
기존 Global Flag와 다르게 Local Flag 는 opensips.cfg 에서 사용할 수 있습니다.
따라서, Global Flag 와 같이 module interface로 서비스 중단 없이 Flag를 변경할 수 없고, opensips.cfg 스크립트 내부에서 수정하고 다시 빌드하여 데몬을 재시작해야 합니다.
장단점이 있지만, 상황에 맞게 Global Flag를 쓸 것인지, Local Flag 를 쓸 것인지 잘 판단하여 사용하면 될 것으로 보입니다.
끝.
'VoIP > OpenSIPS(SIP)' 카테고리의 다른 글
| OpenSIPS - cfgutils Module (shvget, shvset) opensips.cfg 에서 변수 세팅 (0) | 2020.04.16 |
|---|---|
| OpenSIPS - Global Flag (gflags Module) (0) | 2020.04.15 |
| OpenSIPS get_profile_size 발신자기준 동시통화 제한 (0) | 2020.04.07 |







