오늘 다시 현상을 분석했다.
결과는 다음과 같았다.
Asterisk-1.8, channel redirect – OK
Asterisk-13.2, channel redirect – NO
즉, 1.8 버전에서는 되는데, 13.2 버전에서는 안되는 것이었다.
SVN 에서 최신의 소스를 받아서 무슨일이 있었는지 비교해 보았다.
엄청난 차이가 있었다.
한가지 의심스러운 부분이 있었는데…
if (chan2->pbx) {
ast_set_flag(chan2, AST_FLAG_BRIDGE_HANGUP_DONT); /* don’t let the after-bridge code run the h-exten */
}
최신의 소스에서는 위의 부분이 삭제되어 있었던 것. 옵션만봐서는 Bridge 후에 채널을 끊지 않도록 하는 라인 같았다.
해당 부분과 옵션에 대한 Define 만 넣고 다시 컴파일을 한 후 테스트를 해보았으나, 실패. 단순한 소스 수정이 아닌것 같았다.
변경 이력은 다음과 같았다.
Merge in the bridge_construction branch to make the system use the Bridging API.
Breaks many things until they can be reworked. A partial list:
chan_agent
chan_dahdi, chan_misdn, chan_iax2 native bridging
아마도 각각 사용하던 Bridge 설정을 모듈 설정을 따라가도록 수정한 것 같았다.
직장 동료들에게 물어보니 1.8 과 13.2 버전에는 엄청난 차이가 있어서 1.8에서 동작한다고 해서 13.2에서 도동작한다는 보장이 없다는 것이었다.
이 문제를 어떻게 풀어야 할지 좀 걱정이 된다.