It’s so super. MenuetOS

디스켓 한장짜리 OS.

예전에 디스켓 두장으로 리눅스를 설치하곤 했었는데, 이정도는 아니었다. 설치중에 필요한 패키지들을 인터넷으로 다운받아서 설치하는 방식이었기 때문이다.

그런데.. 이건.. 내가 알고 있는 컴퓨터 상식을 뛰어 넘는다. 이론적으로는… 가능할 것 같다. 하지만, 실제로 구현한다는 것은..헐.

인터넷도, 그 무엇도 필요치 않는다. 그냥 단지 딱. 디스켓 한장.

아무튼, 충격, 또 충격.

 

[olive] redirect problem

오늘 다시 현상을 분석했다.

결과는 다음과 같았다.

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에서 도동작한다는 보장이 없다는 것이었다.

이 문제를 어떻게 풀어야 할지 좀 걱정이 된다.

 

[olive] ask again and over again.

일주일 전, 한가지 풀리지 않는 문제가 있었다.

바로 Call transfer 에 관한 문제였다.

일단 parking 된 channel 을 Transfer 하고 싶은데, AMI 명령어 만으로는 해결이 안되는 것이었다.
물론 AMI 명령어로 Transfer 와 관련된 명령이 있긴했다.

blindtransfer
redirect

하지만 내가 원하는 것은 아니었다. 왜냐하면 위의 명령어들은 peer 로 transfer 를 하는 것이 아닌, context 의 extension 으로 transfer 를 하는 것이기 때문이다.

한참동안 고민을 하다가 Asterisk IRC 채널에 물어보고 답변을 들었다.

“Asterisk 는 그렇게 동작을 안해. 왜냐하면 그렇게 디자인 된 것이 아니거든. Transfer 를 하고자 한다면, 어느 순간에는 Dialplan 을 써야할 때가 올꺼야.”

그랬었다. 애초에 불가능한 것이었다.

그랬는데.. 그새 깜박했다.
왜냐하면.. 오늘 또 똑같은 질문을 했기 때문이다.

I thought it was clear a week ago when you asked the same thing and got the same answer’

하아.. 부끄러운 질문이었다.. ^^;;;;