1
별표 (dialplan) 응용 프로그램 내에서 MSSQL 데이터베이스에 사운드 파일을 삽입해야합니다. 저는 DB와 통신하기 위해 freeTDS를 사용하고 있습니다.freeTDS 별표 다이얼 플랜 내부에 BLOB 삽입
exten => s,n,Set(arch=${FILE(/var/lib/asterisk/sounds/custom/myFile.wav)})
exten => s,n,Verbose(${arch})
exten => s,n,Set(RESULT=${SHELL(echo -e use "AVL \\ngo\\ninsert into testblob (name, audiofile) values ('mar',${arch})\\ngo"|tsql -H x.x.x.x -p 1433 -U sa -P x)})
그러나 드 $ 안에 가장 확실하기 때문에 "특수 문자"의 작동하지 않는 {아치 :
예제 테이블은 "testblob"
(id int identity, name varchar(50), audiofile varbinary(MAX))
필자는이 코드를 시도
라고 } 변수. 나는 $ arch 내부 정보가 파일 정보라는 것을 알고 있지만 바이너리 나 64encode로 읽을 필요가 있다고 생각한다.
질문 :이 myFile.wav를 셸에서 직접 삽입 할 수있는 방법이 있습니까? 뭔가 같은 :
echo -e use "AVL \\ngo\\ninsert into testblob (name, audiofile) values ('mar',####MAGIC GOES HERE TO READ MYFILE.WAV###)\\ngo"|tsql -H x.x.x.x -p 1433 -U sa -P x